我在端口80上设置了nginx webserver。 我的(SonarQube)应用程序在端口9000上运行。当我请求http://www.example.com/sonar/时,我希望被重定向到Sonar,所以我将其添加到我的nginx配置中:
location /sonar/ {
proxy_pass http://127.0.0.1:9000/;
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_read_timeout 1800;
proxy_connect_timeout 1800;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
}
但是,当我转到http://www.example.com/sonar/时,此页面上的每个链接都会转到http://www.example.com/而不是http://www.example.com/sonar/。因此样式表,css脚本和链接都被破坏了。我怎样才能解决这个问题?我试过了rewrite
,但我似乎无法让它发挥作用......
答案 0 :(得分:3)
问题出在proxy_pass
行。在你的情况下,它应该是:
proxy_pass http://127.0.0.1:9000;
但不是:
proxy_pass http://127.0.0.1:9000/;
在proxy_pass
指令中,如果您在案例中指定/
的URI,则匹配的URI /sonar/
将替换为指定的/
。