赞
踩
在Apache中配置WebSockets的支持,你需要使用mod_proxy_wstunnel模块,该模块是Apache的一个代理模块,它允许你代理WebSocket请求。
以下是配置步骤的简要说明和示例:
确保你的Apache服务器安装了mod_proxy和mod_proxy_wstunnel模块。如果没有安装,你可能需要安装它们。
在Apache的配置文件中(通常是httpd.conf或者在conf.d/目录下的某个文件),配置一个代理传递规则来转发WebSocket请求到相应的后端服务。
重启Apache服务以使配置生效。
# 在/usr/local/apache2/conf 中的httpd.conf ,在文件在最后添加该内容 # 确保mod_proxy和mod_proxy_wstunnel已经加载 <IfModule mod_proxy.c> ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> # 配置WebSocket代理传递 ProxyVia On ProxyPreserveHost On # 转发到WebSocket服务的地址 # ProxyPass /ws ws://your_websocket_server:port # ProxyPassReverse /ws ws://your_websocket_server:port # 转发到WebSocket服务的地址 ProxyPass /wisdom/websocketTest ws://121.40.221.138:8080 ProxyPassReverse /wisdom/websocketTest ws://121.40.221.138:8080 </IfModule>
本文使用 http proxy 方式 实现 apache 支持 WebSocket 请求(JK 使用的 ajp 协议不能支持websocket)
通过 apache 访问 后端 tomcat上的 websocket 服务,需要使用 mod_proxy.so 和 mod_proxy_wstunnel.so两个库文件(在apache2.4 安装目录下已存在,放开httpd.conf文件中的注释即可使用),如果应用中需要通过http协议访问某些页面(如index页面)则需要添加使用 mod_proxy_http.so,如下:
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
#Listen 12.34.56.78:80
Listen 80
#ServerName www.example.com:80
# ServerName localhost:80 //前端访问时,使用IP访问
ServerName www.pwx.com:80 //前端访问时,使用网址访问
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。