将 nginx 位置块与 Shinyproxy 结合使用

将 nginx 位置块与 Shinyproxy 结合使用

我最近通过以下方式使用 SSL 与 nginx 和 certbot 成功部署了 ShinyProxy + 应用程序:

  1. 将 ShinyProxy + 应用程序 Docker化并在端口上启动127.0.0.1:5001
  2. 创建 Nginx 配置proxy_pass127.0.0.1:5001
  3. 安全使用certbot

这是成功的 nginx.conflocation部分:

    location / {
                     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 $scheme;
                     proxy_set_header        Upgrade $http_upgrade;
                     proxy_set_header        Connection "upgrade";
    
                     proxy_http_version 1.1;
                     proxy_redirect off;
    
                     proxy_read_timeout  90s;
                     proxy_pass          http://127.0.0.1:5001;
           }

https://app.myweb.com/login由于我已设置了,因此这很好地将我重定向到CNAME。需要注意的是,{ShinyProxy} 会login自动重定向到末尾。成功登录后,URL 将重定向到https://app.myweb.com/app/website

我真正纠结的是以下内容:添加location block或按照我的理解,将我的upstream块包含到我的块中downstream(如果我错了,请纠正我的术语)。因此,让我的 url 从 变为https://app.myweb.com/login使用https://app.myweb.com/dashboard/loginnginx 中的以下配置:


location /dashboard/ { # THIS IS WHAT I WANT TO ADD
                     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 $scheme;
                     proxy_set_header        Upgrade $http_upgrade;
                     proxy_set_header        Connection "upgrade";
    
                     proxy_http_version 1.1;
                     proxy_redirect off;
    
                     proxy_read_timeout  90s;
                     proxy_pass          http://127.0.0.1:5001;
           }

所发生的一切是,如果我输入,它不会像我期望的那样https://app.myweb.com/dashboard/转到,而是重定向回。https://app.myweb.com/dashboard/loginhttps://app.myweb.com/login404

对于我做错的事情有什么建议吗?

答案1

location ^~ /dashboard/ { # THIS IS WHAT I WANT TO ADD

你可以尝试这样做。它可能会解决你的问题。

答案2

您需要设置应用程序的基本 URL 以匹配 nginx 配置的 URL。

相关内容