Nexus3 + Nginx 反向代理

Taa*_*sem 5 reverse-proxy nginx nexus3

我试图让 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;
    }
Run Code Online (Sandbox Code Playgroud)

Ric*_*ith 5

如果您使用 访问该服务http://localhost:8081/nexus,则它可以工作。

您当前的配置proxy_pass用于将 URI 更改/nexus/nexus/. 通常,建议/locationproxy_passURI上都带有尾随,或者两者都不带有尾随。

例如:

location /nexus {
    proxy_pass http://localhost:8081/nexus;
    ...
}
Run Code Online (Sandbox Code Playgroud)

事实上,您根本不需要修改 URI,因此您可以将其从proxy_pass指令中完全删除。

以下应该是等效的,但更有效:

location /nexus {
    proxy_pass http://localhost:8081;
    ...
}
Run Code Online (Sandbox Code Playgroud)

默认情况下,Host标头设置为proxy_pass指令的值(即locatlhost:8081),已知它可以正常工作。您可能会发现您的声明proxy_set_header Host $host:$server_port;是不必要的。

有关详细信息,请参阅此文档