我可以在我的服务器上的 8081 端口上运行 Nexus 3.2.0-01 没有问题,但是我想以 https://HOST/nexus/ 运行它,通过nginx反向代理。
根据文档,我需要设置我拥有的基本 URL 功能。然后我将它添加到我的 nginx 配置中:
location /nexus/ {
proxy_pass http://localhost:8081/;
# Rewrite HTTPS requests from WAN to HTTP requests on LAN
proxy_redirect http:// https://;
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";
}
这样做之后,我可以访问 Nexus 但没有图像加载,javascript 没有加载等。查看 Chrome 的控制台,看起来 Nexus 想要访问 URL,例如:
https://HOST/static
https://HOST/service
https://HOST/repository
代替:
https://HOST/nexus/static
https://HOST/nexus/service
https://HOST/nexus/repository
我找不到任何方法来配置 Nexus 以实际全面利用基本 URL 功能。
我试过了:
但是没有运气(不是我期望生成的 URL 引用基于 nginx 配置的/nexus,我想不出还有什么可以尝试的)。
最后,我为/static、/service 和/repository 添加了 proxy_passes(假设我没有遗漏任何一个),乍一看它似乎可以工作,尽管我还没有尝试发布或其他很多东西。
我做错了什么 Nexus 不会正确使用基本 URL?
最佳答案
如果您在 nginx(或其他反向代理)后面运行 Dockerized 版本的 nexus3,您可以使用环境变量 NEXUS_CONTEXT 来设置新上下文。
例如在我的 docker compose 中:
nexus:
image: sonatype/nexus3:3.11.0
ports:
- 8081:8081
networks:
- my_net
environment:
NEXUS_CONTEXT: nexus
关于nginx - Nexus (3.2) 基本 URL 被忽略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42058873/