如何使用 .htaccess 将 WSS 代理到 WS



我正在尝试通过HTTPS连接到不是WSS的websocket服务器。为此,我正在尝试使用 apache 配置将 WSS 代理到 WS。

我尝试使用ProxyPass,但我只能访问.htaccess文件。所以我也尝试使用带有 [P] 标志的mod_rewrite,但仍然没有运气。

这是我的.htaccess文件现在的样子:

RewriteEngine On
RewriteCond %{HTTP:UPGRADE} ^WebSocket$
RewriteCond %{HTTP:CONNECTION} Upgrade$
RewriteRule /(.*) ws://127.0.0.1:9002/ [P]

但是它似乎没有代理,因为我仍然从 wss 连接收到连接错误。

您的RewriteCond Upgrade: WebSocket区分大小写,但(例如(Chrome 会发送Upgrade: websocket .尝试使用不区分大小写的规则:

RewriteCond %{HTTP:Connection} Upgrade [NC]
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteRule /(.*) ws://127.0.0.1:9002/$1  [P,L]

另请参阅此处:https://stackoverflow.com/a/29823699/200445

最新更新