nginx代理传递子目录

时间:2016-01-19 12:31:30

标签: nginx proxy proxypass

我尝试使用以下配置设置代理以通过nginx访问Rundeck的安装:

location ^~ /rundeck/ {
            proxy_pass http://rundeckIP:4440/;}

问题是Rundeck中的任何链接都会省略" Rundeck"子目录。

因此,Rundeck中的链接看起来像这样:http://mywebserver/menu/home而不是http://mywebserver/rundeck/menu/home

使用proxy_redirect和proxy_set_header尝试了许多配置失败。这是使用基本连接的最小配置。

2 个答案:

答案 0 :(得分:1)

尝试更改/ etc / rundeck / profile。在某处你会找到'export RDECK_JVM'部分。添加此选项:

-Dserver.web.context=/rundeck \

答案 1 :(得分:0)

如何设置Rundeck在Nginx后面的SSL下运行,在单独的目录中以及在非标准端口上运行:

/etc/rundeck/profile中,在export RDECK_JVM部分添加以下行:

-Dserver.web.context=/rundeck \

/etc/rundeck/rundeck-config.properties中更改rails.serverURL设置,以匹配外部世界可以访问Rundeck的完整地址:

rails.serverURL=https://mywebserver.com:8000/rundeck

注意:在上述网址中添加尾部斜杠,否则Rundeck界面将无效。

在Nginx配置中,在已配置为在非标准端口上运行SSL的server部分中,添加以下内容:

location ~ /rundeck/ {
    proxy_pass   http://localhost:4440;
    proxy_redirect http://$host https://$host;
}