使用Apache 2.4的闪亮服务器中的代理Web套接字

时间:2016-04-25 23:04:41

标签: r apache proxy websocket shiny-server

我正在使用Apache 2.4,Ubuntu 14.04背后的闪亮服务器(最新版本,1.4.2.786)。

按照在线文档(https://support.rstudio.com/hc/en-us/articles/213733868-Running-Shiny-Server-with-a-Proxy)的说明,我可以正确设置Web套接字的代理。但是,我想将我的URL直接指向一个闪亮的应用程序(并非所有应用程序)。

这是我目前的配置:

ProxyPreserveHost On
ProxyPassMatch "^/(.+)/websocket" "ws://localhost:3838/$1/websocket"
ProxyPass "/" "http://localhost:3838/users/username/appname/"
ProxyPassReverse "/" "http://localhost:3838/users/username/appname/"
ProxyRequests Off

使用此配置,我仍然收到错误消息:

WebSocket connection to 
'wss://my-url/__sockjs__/
n=WxwgyafTMc2bWeH5eR/787/mx9zqt68/websocket' 
failed: Error during WebSocket handshake: 
Unexpected response code: 500

我猜这是由socket的代理配置引起的。感谢您提出修复建议。

1 个答案:

答案 0 :(得分:3)

你见过this吗?它说您的代码应该如下所示:

ProxyPreserveHost On
ProxyPassMatch "^/(.+)/websocket" "ws://localhost:3838/$1/websocket"
ProxyPass "/users/username/appname/" "http://localhost:3838/users/username/appname/"
ProxyPassReverse "/users/username/appname/" "http://localhost:3838/users/username/appname/"
ProxyRequests Off

希望有所帮助!