Apache2 反向代理和 websocks
Apache2 reverse proxy and websocks
我试图通过以下方式在我的反向代理中允许 websocks:
<Location "/monitor">
ProxyPreserveHost On
RequestHeader set X-Forwarded-Proto https
RequestHeader set X-Forwarded-Port 443
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/monitor/notify [NC]
RewriteCond %{QUERY_STRING} transport=websocket [NC]
RewriteRule ^/monitor/notify/(.*) wss://localhost:8001/monitor/notify/ [P,L]
ProxyPass http://localhost:8001/monitor
ProxyPassReverse http://localhost:8001/monitor
</Location>
但是我收到这个错误:
VM690:149 WebSocket connection to 'wss://MY.HOST/monitor/notify/516/q7pqnqdz/websocket' failed: Error during WebSocket handshake: Unexpected response code: 400
我做错了什么?
这样解决了:
RewriteEngine On
RewriteCond %{HTTP:Connection} Upgrade [NC]
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteRule /monitor/(.*) ws://127.0.0.1:8001/monitor/ [P,L]
我试图通过以下方式在我的反向代理中允许 websocks:
<Location "/monitor">
ProxyPreserveHost On
RequestHeader set X-Forwarded-Proto https
RequestHeader set X-Forwarded-Port 443
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/monitor/notify [NC]
RewriteCond %{QUERY_STRING} transport=websocket [NC]
RewriteRule ^/monitor/notify/(.*) wss://localhost:8001/monitor/notify/ [P,L]
ProxyPass http://localhost:8001/monitor
ProxyPassReverse http://localhost:8001/monitor
</Location>
但是我收到这个错误:
VM690:149 WebSocket connection to 'wss://MY.HOST/monitor/notify/516/q7pqnqdz/websocket' failed: Error during WebSocket handshake: Unexpected response code: 400
我做错了什么?
这样解决了:
RewriteEngine On
RewriteCond %{HTTP:Connection} Upgrade [NC]
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteRule /monitor/(.*) ws://127.0.0.1:8001/monitor/ [P,L]