Apache配置wss代理

3289 2019-04-22 Apache

假设你使用的是 Apache 2.4 或更高版本,并且已经启用了必要的模块。

启用必要的 Apache 模块

mod_proxymod_proxy_httpmod_proxy_wstunnelmod_ssl

配置示例

注意:域名仅为示例,请更换成你的域名

访问wss://example.com/wss自动代理转发到ws://127.0.0.1:8000


    ServerName example.com
    DocumentRoot /var/www/example  # 网站根目录

    # SSL 配置
    SSLEngine on
    SSLCertificateFile /etc/Apache2.4/conf/ssl/example.com.crt
    SSLCertificateKeyFile /etc/Apache2.4/conf/ssl/example.com.key

    # 其他 SSL 配置(可以根据需要调整)
    SSLSessionTimeout 5m
    SSLSessionCache shared:SSL:50m
    SSLProtocol all -SSLv2 -SSLv3
    SSLCipherSuite HIGH:!aNULL:!MD5
    SSLHonorCipherOrder on

    # WebSocket 配置
    ProxyPass "/wss" "ws://127.0.0.1:8000"
    ProxyPassReverse "/wss" "ws://127.0.0.1:8000"

    # 设置 WebSocket 头部
    Header always set Upgrade $http_upgrade
    Header always set Connection "Upgrade"

    # 防止 WebSocket 连接被关闭
    ProxyTimeout 3600
    Timeout 3600

    # 保持原始的客户端 IP
    ProxyPreserveHost On

    # 其他虚拟主机配置...