【发布时间】:2017-02-06 00:21:23
【问题描述】:
我可以毫无问题地在我的服务器上的 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 功能。
我试过了:
- 添加/删除 X-Forwarded-Proto
- 将位置设置为 ^~ /nexus/
- 启用和禁用 proxy_redirect
但是没有运气(不是我期望生成的 URL 引用 /nexus 基于 nginx 配置,我想不出其他可以尝试的方法)。
最后,我为 /static、/service 和 /repository 添加了 proxy_passes(假设我没有遗漏任何内容),乍一看它似乎可以工作,尽管我还没有尝试过发布或其他任何事情。
Nexus 无法正确使用基本 URL,我做错了什么?
【问题讨论】:
-
你发现了吗?