我正在尝试将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
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;
}
}
发布于 2018-11-29 17:17:41
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 ),您可以创建另一个方括号集,因此您可以:
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;
}
}希望我帮了你。
https://stackoverflow.com/questions/53525636
复制相似问题