Apache中如何配置 wss 接口
在Apache中配置WebSockets的支持,你需要使用mod_proxy_wstunnel模块,该模块是Apache的一个代理模块,它允许你代理WebSocket请求。
以下是配置步骤的简要说明和示例:
确保你的Apache服务器安装了mod_proxy和mod_proxy_wstunnel模块。如果没有安装,你可能需要安装它们。
在Apache的配置文件中(通常是httpd.conf或者在conf.d/目录下的某个文件),配置一个代理传递规则来转发WebSocket请求到相应的后端服务。
重启Apache服务以使配置生效。
java
# 在/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>
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 ,把前面的 #号注释去掉
java
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 ,中配置 监听端口
java
#Listen 12.34.56.78:80
Listen 80
#ServerName www.example.com:80
# ServerName localhost:80 //前端访问时,使用IP访问
ServerName www.pwx.com:80 //前端访问时,使用网址访问