Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save PsyGik/ef51984c1d99272231b514588a69f061 to your computer and use it in GitHub Desktop.
Save PsyGik/ef51984c1d99272231b514588a69f061 to your computer and use it in GitHub Desktop.
Set reverse proxy websockets in Apache 2.4 using socket.io 1.0. Needs mod_rewrite module, this version uses SSL. As seen here https://serverfault.com/questions/616370/configuring-apache-2-4-mod-proxy-wstunnel-for-socket-io-1-0
<VirtualHost *:80>
ServerName forum.example.com
Redirect permanent / https://forum.example.com
</VirtualHost>
<VirtualHost *:443>
ServerName forum.example.com
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
SSLCertificateFile /etc/apache2/ssl/example-com/forum.ssl.crt
SSLCertificateKeyFile /etc/apache2/ssl/example-com/private.key
SSLCertificateChainFile /etc/apache2/ssl/example-com/sub.class1.server.ca.pem
# ServerAdmin webmaster@localhost
<Proxy *>
Require all granted
</Proxy>
ProxyRequests off
ProxyVia on
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/socket.io [NC]
RewriteCond %{QUERY_STRING} transport=websocket [NC]
RewriteRule /(.*) ws://localhost:4567/$1 [P,L]
ProxyPass /socket.io http://localhost:4567/socket.io
ProxyPassReverse /socket.io http://localhost:4567/socket.io
<Location />
ProxyPass http://127.0.0.1:4567/
ProxyPassReverse http://127.0.0.1:4567/
</Location>
ErrorLog /home/username/logs/apache/forum-error.log
CustomLog /home/username/logs/apache/forum-access.log combined
</VirtualHost>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment