在使用nginx反向代理,后段服务器上nexus的ui时,发现问题:
当从外部浏览器输入:http://**.**.**.**:8081时,返回的html的里的端口都是80,那就意味着网页请求的图片或者链接都去找**.**.**.**:80下面的东西,而我代理的是8081的端口所以接下去的图片链接都找不到后段服务器的东西。
先看看我之前的nginx.conf
nexus 8081
server{
listen 8081;
server_name ****;
#access_log /var/log/nginx/nexus.access.log main
location / {
#proxy_redirect off;
proxy_set_header Host $host;
proxy_pass http://10.27.1.55:8081/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
注意:
proxy_set_header Host $host;
先来看下proxy_set_header的语法语法:proxy_set_header?
默认值:field
?value
;
proxy_set_header Host $proxy_host
这里只传送了 IP,没有端口。
其它的代理网页也没有因此出现问题,所以这里我认为是nexus是将请求头的ip和port来定义送出来的html中的路径
解决方案:
所以办法是
服务器名可以和后端服务器的端口一起传送:
proxy_set_header Host $host:$proxy_port;