我最近通过以下方式使用 SSL 与 nginx 和 certbot 成功部署了 ShinyProxy + 应用程序:
- 将 ShinyProxy + 应用程序 Docker化并在端口上启动
127.0.0.1:5001
。 - 创建 Nginx 配置
proxy_pass
并127.0.0.1:5001
。 - 安全使用
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/login
nginx 中的以下配置:
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/login
404
对于我做错的事情有什么建议吗?
答案1
location ^~ /dashboard/ { # THIS IS WHAT I WANT TO ADD
你可以尝试这样做。它可能会解决你的问题。
答案2
您需要设置应用程序的基本 URL 以匹配 nginx 配置的 URL。