首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gogs的Nginx反向代理

Gogs的Nginx反向代理
EN

Stack Overflow用户
提问于 2018-11-28 18:12:40
回答 1查看 1.3K关注 0票数 1

我正在尝试将nginx服务器实现为访问我的Gogs实例的反向代理。原因是我需要从工作中访问我的服务,在那里,除了标准端口之外,所有的端口都被阻塞。为了避免我的服务器上的端口冲突,大多数服务运行在端口>1000上(而且,在默认3000下,Gogs也是如此)。因此,我创建了自己的vhost配置,以重定向到Gogs。我得到了简单的html站点,但是在加载图像和脚本时出现了错误。Gogs本身似乎将客户端重定向到多个子源,例如/js、/img、/asset和/user。然后,我将/js和/img路径作为位置添加到nginx中,并使站点运行。然而,这似乎是相当多的工作,保持所有这些路径的跟踪和配置。是否有一种方法可以通过nginx为客户端提供这些路径,而不必一个一个地配置它们?

Gogs和nginx实例运行在同一个服务器上,重定向是通过ip配置的,没有像localhost那样的回送,也没有使用127.0.0.1,尽管我尝试过,但没有成功。

感谢您的帮助,并在下面找到我的配置。RMGP.S:我检查了不同的教程和问题,包括this stackoverflow question

代码语言:javascript
复制
server {
        listen 80 default_server;
        server_name devsrv;
        
        #this redirect to another server on port 80 works fine
        location /nextcloud {
                proxy_pass http://OTHERIP/nextcloud;
        }

        location /gogs/ {
                proxy_set_header X-Real-IP $remote_addr;
                proxy_pass http://LOCALIP:3000/;
        }
        # gogs script location
        location /js {
                proxy_pass http://LOCALIP:3000/js;
        }
        # gogs image location
         location /img {
                proxy_pass http://LOCALIP:3000/img;
        }

}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-29 17:17:41

代码语言:javascript
复制
server {
        listen 80 default_server;
        server_name devsrv;

        #this redirect to another server on port 80 works fine
        location /nextcloud {
                proxy_pass http://OTHERIP/nextcloud;
        }

        location /gogs/ {
                proxy_set_header X-Real-IP $remote_addr;
                proxy_pass http://LOCALIP:3000/;
        }
        location / {
                proxy_pass http://LOCALIP:3000$request_uri;
        }


}

设置所有需要使用特殊params处理的特定url ( /gogs或/nextcloud上的X),并将所有其他url发送到$request_uri。

/js?LOCALIP:3000/js

/img?LOCALIP:3000/img

一切都会走到它自己的道路上。

如果您只想将来自gogs的连接发送到REALIP (我将假设那些从gogs发送的重定向来自于REALIP ),您可以创建另一个方括号集,因此您可以:

代码语言:javascript
复制
server {
        listen REALIP:80 default_server;
        server_name devsrv;

        #this redirect to another server on port 80 works fine
        location / {
                proxy_pass http://REALIP:3000$request_uri;
        }
}

希望我帮了你。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53525636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档