我正试图让Nexus3在Nginx之后运行。
Nginx用作反向代理并用于SSL终止。通过Nginx访问/ nexus路径时,出现多个错误,例如“由于无法访问服务器导致操作失败”和“无法检测到您连接到哪个节点”。在不通过Nginx的情况下访问Nexus UI的工作原理非常完美,这使我认为错误出在Nginx上。
NginX配置文件
location /nexus {
proxy_pass http://localhost:8081/nexus/;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
resolver 8.8.8.8 8.8.4.4 ipv6=off;
}
答案 0 :(得分:2)
如果您使用http://localhost:8081/nexus
访问该服务,那么它将起作用。
您当前的配置正在使用proxy_pass
将URI /nexus
更改为/nexus/
。通常,建议在/
和location
URI上都没有尾随的proxy_pass
,或者在这两个URI上都没有。
例如:
location /nexus {
proxy_pass http://localhost:8081/nexus;
...
}
实际上,您根本不需要修改URI,因此可以将其从proxy_pass
指令中完全删除。
以下内容应等效,但效率更高:
location /nexus {
proxy_pass http://localhost:8081;
...
}
默认情况下,Host
标头设置为proxy_pass
指令的值(即locatlhost:8081
),已知该指令可以正常工作。您可能会发现您的声明proxy_set_header Host $host:$server_port;
是不必要的。
有关详细信息,请参见this document。