我已经在 SO 和相关网站上查看了这个问题和其他各种问题,但到目前为止建议的解决方案都没有奏效。
我正在运行tty.js
并localhost:8080
验证 websocket 在直接点击该端口时可以正常工作。现在,我正在尝试tty.js
通过 Apache 反向代理进行连接。该应用程序可以在不使用 Websockets 的情况下工作,但我试图理解为什么 Websockets 不起作用。
这是我的 Apache 配置,用于使用来自sourcelocalhost
的全新 Apache 构建进行测试。
Listen 9000
# Load proxy modules
LoadModule proxy_module "modules/mod_proxy.so"
LoadModule proxy_http_module "modules/mod_proxy_http.so"
LoadModule proxy_wstunnel_module "modules/mod_proxy_wstunnel.so"
<VirtualHost *:9000>
ServerName localhost
ProxyPass /tty/socket.io/1/ ws://localhost:8080/socket.io/1/
ProxyPassReverse /tty/socket.io/1/ ws://localhost:8080/socket.io/1/
ProxyPass /tty/ http://localhost:8080/
ProxyPassReverse /tty/ http://localhost:8080/
</VirtualHost>
当我连接到 时http://localhost:9000/tty/
,出现500
错误。
在服务器端日志中,我收到以下错误。
[Mon Jan 02 19:30:32.342551 2017] [proxy:warn] [pid 28226:tid 140098955872000] [client 127.0.0.1:38372] AH01144: No protocol handler was valid for the URL /tty/socket.io/1/. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule., referer: http://localhost:9000/tty/
Apache 使 Websockets 正常工作的正确配置是什么?