0

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

  1. Dockerize ShinyProxy + app 并在 port 上启动127.0.0.1:5001
  2. 创建 Nginx 配置proxy_pass并将127.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 转到在 nginxhttps://app.myweb.com/loginhttps://app.myweb.com/dashboard/login使用以下配置:


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/login像我期望的那样去,而是重定向回https://app.myweb.com/loginwhich 404's.

关于我做错了什么的任何建议?

4

0 回答 0