You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache 2.4反向代理WebSocket时如何去除X-Powered-By响应头

解决Apache反向代理WebSocket时无法移除X-Powered-By响应头的问题

问题原因

当用Apache的ProxyPass代理WebSocket(ws://)协议时,常规的Header指令无法生效——因为WebSocket握手响应的头信息由mod_proxy_wstunnel模块单独处理,常规mod_headers的处理逻辑不会覆盖这个流程。

解决方案

1. 使用ProxyHeader指令移除响应头

ProxyHeader是Apache代理模块专门用于处理代理请求响应头的指令,能直接作用于mod_proxy_wstunnel返回的WebSocket握手响应。修改虚拟主机配置,添加以下指令:

ProxyHeader unset X-Powered-By

修改后的完整配置示例:

<VirtualHost *:1234>
    SSLEngine on
    SSLCertificateFile      <stripped>
    SSLCertificateKeyFile   <stripped>
    ServerName              <stripped>

    DocumentRoot            <stripped>

    ProxyPass               / ws://127.0.0.1:5454/
    ProxyPassReverse        / ws://127.0.0.1:5454/
    # 新增:移除代理返回的X-Powered-By头
    ProxyHeader unset X-Powered-By

    ErrorLog                <stripped>
    CustomLog               <stripped>

    Header always unset "X-Powered-By"
</VirtualHost>

2. 确认mod_proxy_wstunnel模块已启用

即便你的WebSocket代理已正常运行,仍需确保该模块已加载(Debian/Ubuntu系统执行以下命令):

a2enmod proxy_wstunnel
systemctl restart apache2

验证

修改配置并重启Apache后,通过Chrome开发者工具查看WebSocket握手的响应头,确认X-Powered-By已被移除。


内容的提问来源于stack exchange,提问作者Segolene

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 12:35:13