是否可以使用 mod_rewrite 代理 websocket 连接?

是否可以使用 mod_rewrite 代理 websocket 连接?

目前,我已将 Apache Web 服务器配置为响应myserver.com。此外,我还有第二个 Web 服务器应用程序在服务器上的 localhost 上监听端口 4321。我希望此 Web 服务器能够响应api.myserver.com

如果可能的话,我宁愿仅仅依靠.htaccesspresent on public_html/api.myserver.com

目前,我拥有这两者httphttps遵循以下public_html/api.myserver.com/.htaccess规则:

RewriteCond %{REQUEST_SCHEME} ^(ws|wss)$ [NC]
RewriteRule (.*) ws://localhost:4321/$1 [P,L]

RewriteCond %{REQUEST_SCHEME} !^(ws|wss)$ [NC]
RewriteRule (.*) http://localhost:4321/$1 [P,L]

但是,当我尝试使用ws/wss协议进行连接时,它不起作用。我猜想是代理 [P] 标志没有将连接升级到ws

是否有.htaccessProxyPass下面类似的比较?

ProxyPass "/some/ws/capable/path/" "http://example.com/some/ws/capable/path/" upgrade=websocket

相关内容