nginx代理gitea

半日闲 2020年07月24日 39次浏览

2种思路,一种是路径代理,一种是二级域名

路径代理:访问a.b/gitea/的时候,跳转到gitea的服务端口(localhost:33333)

二级域名:访问gitea.a.b的时候,跳转到gitea的服务端口(localhost:33333)

由于使用路径代理的时候,gitea使用的request_uri结果导致有些css总是看不到,所以使用二级域名

  1. 完成二级域名映射

    在域名服务商的DNS记录中添加一条A记录即可,假定A记录为gitea.kengdie.xyz

  2. 配置gitea

    修改其中的domain项为刚才的二级域名gitea.kengdie.xyz

    [root@hecs-x-medium-2-linux-20200411110030 gitea]# cat /usr/local/gitea/custom/conf/app.ini
    ······此处省略一部分配置,只写出必要配置,下面的端口都故意乱写的
    [server]
    LOCAL_ROOT_URL   = http://localhost:90000/
    SSH_DOMAIN       = gitea.kengdie.xyz
    DOMAIN           = gitea.kengdie.xyz
    HTTP_PORT        = 90000
    ROOT_URL         = http://gitea.kengdie.xyz/
    
  3. 配置nginx

    修改nginx的配置

    [root@hecs-x-medium-2-linux-20200411110030 nginx]# cat /etc/nginx/nginx.conf
    ······同样只暴露部分相关的配置
    	server {
            listen       80;
            listen       [::]:80;
            server_name  kengdie.xyz;
            root         /usr/share/nginx/html;
    
            # Load configuration files for the default server block.
            include /etc/nginx/default.d/*.conf;
    #       if ($server_port !~ 443){
    #           rewrite ^(/.*)$ https://$host$1 permanent;
    #       }
    ### 在这里注释掉重定向443端口的原因是,因为我下面的gitea没有做ssl,同样监听在80,导致访问gitea.kengdie.xyz的时候,有时候会重定向到443,导致无法访问到gitea
        }
        server {
            listen  80;
            server_name gitea.kengdie.xyz;
    ### 此处配置刚才的二级域名gitea.kengdie.xyz        
            root         /usr/share/nginx/html;
            location / {
                    proxy_pass http://gitea.kengdie.xyz:33333$request_uri;
    ### 后面写上$request_uri的原因是,gitea需要使用后续的uri来相应请求,如果不把这些uri传递过去,gitea的界面就会有很多css看不到                
            }
        }
    
  4. 访问gitea.kengdie.xyz