Nexus部署于SSL反向代理后自定义上下文路径无法正常工作
解决Nexus在SSL反向代理下自定义上下文路径失效的问题
问题核心
当前配置的矛盾点在于:Nexus默认以根路径/提供服务,而Nginx通过/nexus反向代理时,两者路径映射不匹配,且Nexus未正确感知自身上下文路径,导致页面资源链接、API请求路径全部错误。
解决步骤
1. 修改Nexus上下文路径配置
找到Nexus安装目录下的etc/nexus.properties文件,添加或修改以下配置项:
nexus-context-path=/nexus
注:不同Nexus版本参数名可能略有差异,旧版本可能为
application-context-path,以文件内注释为准。
修改完成后重启Nexus服务,此时Nexus会以http://server:8081/nexus作为自身服务路径。
2. 更新Nexus的Base URL设置
进入Nexus管理界面,找到Base URL Capabilities设置,将其修改为:
https://dev/nexus
该配置用于让Nexus生成正确的外部访问链接,必须包含自定义上下文路径/nexus。
3. 调整Nginx反向代理配置
将原有的location /nexus块修改为:
server { listen *:443; server_name dev; client_max_body_size 1G; proxy_max_temp_file_size 2G; ssl on; ssl_certificate dev-test.crt; ssl_certificate_key dev-test.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5s; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location /nexus { proxy_pass http://server:8081/nexus; proxy_set_header Host $host; 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"; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Port $server_port; } }
关键调整点:
proxy_pass目标路径从http://server:8081/改为http://server:8081/nexus,确保路径映射完全匹配- 新增
X-Forwarded-Host和X-Forwarded-Port请求头,帮助Nexus正确识别外部访问的主机和端口
4. 重启服务
重启Nginx服务使配置生效,同时确保Nexus已正常重启。
完成以上步骤后,访问https://dev/nexus即可正常使用Nexus服务。
内容的提问来源于stack exchange,提问作者Shoaib
相关产品推荐
相关产品推荐

