nginx代理传递子目录

nginx proxy pass subdirectory

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

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

问题是 Rundeck 中的任何 link 都会忽略 "Rundeck" 子目录。

因此,Rundeck 内的 links 看起来像这样:http://mywebserver/menu/home instead of http://mywebserver/rundeck/menu/home

尝试了很多 proxy_redirect 和 proxy_set_header 的配置,但均未成功。这是让我完成基本连接的最小配置。

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

-Dserver.web.context=/rundeck \

如何将 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

注意:不要在上面的URL中添加尾部斜杠,否则Rundeck界面将无法使用。

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

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