Apache中如何配置 wss 接口
在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,allowAllow from all</Proxy># 配置WebSocket代理传递ProxyVia OnProxyPreserveHost 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:8080ProxyPassReverse /wisdom/websocketTest ws://121.40.221.138:8080
</IfModule>
Apache 配置 WebSocket 协议
本文使用 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,如下:
在/usr/local/apache2/conf 中的httpd.conf ,在文件中找到mod_proxy.so 、mod_proxy_wstunnel.so 、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
Apache 配置 httpd ,中配置 监听端口
#Listen 12.34.56.78:80
Listen 80#ServerName www.example.com:80
# ServerName localhost:80 //前端访问时,使用IP访问ServerName www.pwx.com:80 //前端访问时,使用网址访问