目前,我已经成功安装了包含mod_proxy_wstunnel的apache2.4.18,并在另一台机器上安装了tomcat7。我已经在tomcat7上部署了大气样本应用程序。然后我可以访问http://tomcatserver.com:8080/ademo/index.html
此index.html是从https://github.com/Atmosphere/atmosphere-samples/blob/master/samples/chat/src/main/webapp/index.html检索的。
然后我尝试在apache服务器中设置 httpd.conf ,如下所示。我没有使用任何与VirtualHost相关的配置。我只需将以下两行附加到此httpd.conf文件的末尾。
ProxyPass /ademo/ http://tomcatserver.com:8080/ademo/
ProxyPassReverse /ademo/ http://tomcatserver.com:8080/ademo/
然后我重新启动httpd,并访问以下网址。 http://apachehttpdserver.com/ademo/index.html
所以我想知道如何修改 httpd.conf 以支持websocket?
我没有注明LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
实际上,我计划设置多个后端服务器,因此我使用以下http://blog.arungupta.me/load-balance-websockets-apache-httpd-techtip48/引用的配置。但我仍然得到错误 [Fri Jan 08 02:55:50.840362 2016] [proxy:warn] [pid 18446:tid 46971298007360] [client 10.248.66.148:52033] AH01144:没有协议处理程序对URL有效/ademo/socket.html。如果您使用的是DSO版本的mod_proxy,请确保使用LoadModule将配置子模块包含在配置中。 我确定的一件事是我在httpd.conf中设置了必要的模块。
<Proxy balancer://mycluster>
# Define back-end servers:
# Server 1
BalancerMember ws://10.214.49.65:8080
# Server 2
BalancerMember ws://10.214.49.83:8080/
</Proxy>
ProxyPass /ademo balancer://mycluster/ademo
ProxyPassReverse /ademo balancer://mycluster/ademo
答案 0 :(得分:0)
我想回答我自己的问题。
我使用的httpd是从支持websocket的源代码2.4.18编译的。我发现编译过程正常,没有任何异常。我使用的redhat是Red Hat Enterprise Linux Server 5.9版(Tikanga)。
我猜这是因为错误消息'没有协议处理程序有效'。我尝试在yum安装的情况下切换到redhat 7.1。我执行了'yum install httpd',它将自动安装httpd 2.4.5。我发现httpd和tomcat的websocket连接都没问题。
但是目前我想在redhat 5.x上解决这个问题,因为将来我们会使用低版本的redhat。通常,由于编译过程是好的,二进制文件也应该可以吗?