Skip to content

Commit a2b2afa

Browse files
[apache] Change websocket tunneling directive from a websocket-only URL to universal one. (#27)
1 parent a9ac7c4 commit a2b2afa

File tree

4 files changed

+20
-4
lines changed

4 files changed

+20
-4
lines changed

apache/minimal.conf

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ LoadModule unixd_module modules/mod_unixd.so
55
LoadModule proxy_module modules/mod_proxy.so
66
LoadModule proxy_http_module modules/mod_proxy_http.so
77
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
8+
LoadModule rewrite_module modules/mod_rewrite.so
89
LoadModule headers_module modules/mod_headers.so
910
LoadModule setenvif_module modules/mod_setenvif.so
1011

@@ -18,6 +19,9 @@ RequestHeader setifempty X-Forwarded-Proto http
1819
RequestHeader setifempty X-Forwarded-Host %{THE_HOST}e
1920
ProxyAddHeaders Off
2021

21-
ProxyPassMatch (.*)(\/websocket)$ "ws://backendserver-address/$1$2"
22+
RewriteEngine on
23+
RewriteCond %{HTTP:Upgrade} websocket [NC]
24+
RewriteCond %{HTTP:Connection} upgrade [NC]
25+
RewriteRule ^/?(.*) "ws://backendserver-address/$1" [P,L]
2226
ProxyPass / "http://backendserver-address/"
2327
ProxyPassReverse / "http://backendserver-address/"

apache/proxy-https-to-http.conf

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ LoadModule unixd_module modules/mod_unixd.so
1010
LoadModule proxy_module modules/mod_proxy.so
1111
LoadModule proxy_http_module modules/mod_proxy_http.so
1212
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
13+
LoadModule rewrite_module modules/mod_rewrite.so
1314
LoadModule headers_module modules/mod_headers.so
1415
LoadModule setenvif_module modules/mod_setenvif.so
1516
LoadModule ssl_module modules/mod_ssl.so
@@ -42,6 +43,9 @@ RequestHeader setifempty X-Forwarded-Proto https
4243
RequestHeader setifempty X-Forwarded-Host %{THE_HOST}e
4344
ProxyAddHeaders Off
4445

45-
ProxyPassMatch (.*)(\/websocket)$ "ws://backendserver-address/$1$2"
46+
RewriteEngine on
47+
RewriteCond %{HTTP:Upgrade} websocket [NC]
48+
RewriteCond %{HTTP:Connection} upgrade [NC]
49+
RewriteRule ^/?(.*) "ws://backendserver-address/$1" [P,L]
4650
ProxyPass / "http://backendserver-address/"
4751
ProxyPassReverse / "http://backendserver-address/"

apache/proxy-https-to-https.conf

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ LoadModule unixd_module modules/mod_unixd.so
1010
LoadModule proxy_module modules/mod_proxy.so
1111
LoadModule proxy_http_module modules/mod_proxy_http.so
1212
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
13+
LoadModule rewrite_module modules/mod_rewrite.so
1314
LoadModule headers_module modules/mod_headers.so
1415
LoadModule setenvif_module modules/mod_setenvif.so
1516
LoadModule ssl_module modules/mod_ssl.so
@@ -46,6 +47,9 @@ RequestHeader setifempty X-Forwarded-Proto https
4647
RequestHeader setifempty X-Forwarded-Host %{THE_HOST}e
4748
ProxyAddHeaders Off
4849

49-
ProxyPassMatch (.*)(\/websocket)$ "wss://backendserver-address/$1$2"
50+
RewriteEngine on
51+
RewriteCond %{HTTP:Upgrade} websocket [NC]
52+
RewriteCond %{HTTP:Connection} upgrade [NC]
53+
RewriteRule ^/?(.*) "wss://backendserver-address/$1" [P,L]
5054
ProxyPass / "https://backendserver-address/"
5155
ProxyPassReverse / "https://backendserver-address/"

apache/proxy-to-virtual-path.conf

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ LoadModule unixd_module modules/mod_unixd.so
55
LoadModule proxy_module modules/mod_proxy.so
66
LoadModule proxy_http_module modules/mod_proxy_http.so
77
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
8+
LoadModule rewrite_module modules/mod_rewrite.so
89
LoadModule headers_module modules/mod_headers.so
910
LoadModule setenvif_module modules/mod_setenvif.so
1011

@@ -25,6 +26,9 @@ Define DS_ADDRESS backendserver-address
2526
ProxyAddHeaders Off
2627
</Location>
2728

28-
ProxyPassMatch ^\${VPATH}(.*)(\/websocket)$ "ws://${DS_ADDRESS}/$1$2"
29+
RewriteEngine on
30+
RewriteCond %{HTTP:Upgrade} websocket [NC]
31+
RewriteCond %{HTTP:Connection} upgrade [NC]
32+
RewriteRule ^\${VPATH}/?(.*) "ws://${DS_ADDRESS}/$1" [P,L]
2933
ProxyPass ${VPATH} "http://${DS_ADDRESS}"
3034
ProxyPassReverse ${VPATH} "http://${DS_ADDRESS}"

0 commit comments

Comments
 (0)