WebSocket reverse proxy with Apache 2.4

To allow access to my local smartMeterLogger I setup a virtual host energie.wasietsmet.nl.

This means setting up a reverse proxy for the websocket running on the smartMeterLogger.
First thing to do is to enable proxy_wstunnel with a2enmod.
Then set up the virtual host. See below how to.
Don’t forget to reload the settings in Apache2!

<VirtualHost *:80>
ServerName energie.wasietsmet.nl

  ProxyRequests Off
 
  ProxyPreserveHost On
 
  ProxyPass / "http://192.168.0.107/"
  ProxyPassReverse / "http://192.168.0.107/"
        
  RewriteEngine on
  RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
  RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
  RewriteRule .* ws://192.168.0.107%{REQUEST_URI} [P]

SetEnvIf Request_URI "^/events" dontlog
SetEnvIf Request_URI "^/raw" dontlog
 
CustomLog "|/usr/bin/rotatelogs /var/www/energie.wasietsmet.nl/log/access%d-%m-%Y 86400" vhost_combined env=!dontlog
ErrorLog "|/usr/bin/rotatelogs /var/www/energie.wasietsmet.nl/log/error%d-%m-%Y 86400"
</VirtualHost>

Links:

http://aripratech.com/reverse-proxy-websockets-with-apache-httpd-server/

Leave a Reply

Your email address will not be published.

Time limit is exhausted. Please reload CAPTCHA.

This site uses Akismet to reduce spam. Learn how your comment data is processed.