Nexus3 + Nginx 反向代理

Nexus3 + Nginx Reverse proxy

我正在努力让 Nexus3 落后于 Nginx 运行。

Nginx 用作反向代理和 SSL 终止。通过Nginx访问/nexus路径时,出现"Operation failed as server could not be reached"、"unable to detect which node you are connected to"等多个错误。在不通过 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;
    }

如果您使用 http://localhost:8081/nexus 访问该服务,它会起作用。

您当前的配置正在使用 proxy_pass 将 URI /nexus 更改为 /nexus/。通常,建议在 locationproxy_pass URI 上或两者都没有尾随 /

例如:

location /nexus {
    proxy_pass http://localhost:8081/nexus;
    ...
}

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

下面应该是等价的,但是效率更高:

location /nexus {
    proxy_pass http://localhost:8081;
    ...
}

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

详情见this document