我最近通过以下方式成功部署了一个使用 SSL 与 nginx 和 certbot 的 ShinyProxy + 应用程序:
- Dockerize ShinyProxy + app 并在 port 上启动
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 转到在 nginxhttps://app.myweb.com/login
中https://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/login
which 404
's.
关于我做错了什么的任何建议?