我将Nginx配置为反向代理,这样我就可以将没有SSL /身份验证的本地服务作为具有SSL /身份验证的服务提供给网络。 The configuration看起来很像我在Stack Overflow和Nginx文档中看到的例子。
这似乎在基本情况下非常有效。但是,我试图在它后面运行R Shiny,它似乎以某种方式使用websockets来检测服务器何时消失。如果没有代理,页面永远不会检测到服务器会消失,除非确实如此(页面获得灰色叠加)。使用代理,页面在proxy_read_timeout
之后变为灰色。我不想设置任意高的值,因为它通常不会修复websockets。配置部分似乎match examples我看到如何使websockets工作:
location /latencies/ {
auth_request /auth-proxy;
proxy_pass http://localhost:8080/;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
我也尝试添加X-Forwarded-Proto
和proxy_buffering off
设置described in the Shiny documentation。
我在Chrome或Firefox开发者工具中都没有看到错误。我甚至没有看到网络请求发出或进入,所以甚至不能100%确定导致这种情况的原因。 I do see code in Shiny表示websockets正用于活体测试。
(我知道R Shiny Server和ShinyProxy,这可能会或可能没有帮助。我想避免添加更多移动部件/如果可能的话也要学习它们。)