Appearance
Apache2 configuration
Apache vhost
You need to create a vhost listening on port 443.
For exemple with certbot :
1. Create a vhost listening on port 80 with ServerName equals to your custom domain. Don't define any document root. 2. Then, use certbot to get a certificate and automatically create your vhost listening on port 443
text
sudo certbot --apache --email your_email -d your_domain --agree-tos --redirect --noninteractive
Reverse proxy
You have now to configure your reverse proxy directive. Head up to your 443 vhost configuration file and paste those directives (place them after server and ssl directives) :
text
RewriteEngine on
RewriteCond ${HTTP:Upgrade} websocket [NC]
RewriteCond ${HTTP:Connection} upgrade [NC]
RewriteRule .* "wss://127.0.0.1:8000/$1" [P,L]
ProxyRequests off
<Location />
ProxyPass http://127.0.0.1:8000/
ProxyPassReverse http://127.0.0.1:8000/
ProxyPreserveHost On
</Location>
<Location /socketcluster>
ProxyPass ws://127.0.0.1:8000/socketcluster
ProxyPassReverse ws://127.0.0.1:8000/socketcluster
ProxyPreserveHost On
</Location>
<Proxy *>
AllowOverride All
Order allow,deny
Allow from All
</Proxy>
RequestHeader set X-Forwarded-port "80"
Be careful to NOT type trailing slash for ws location (it won't work).
I'm not sure that all directives are needed, but this configuration works for me.
Configuring remoteip
You also need to configure remoteip mod from apache with this command :
text
a2enmod remoteip
Then, edit /etc/apache2/conf-available/remoteip.conf to fit with this content :
text
RemoteIPHeader X-Real-IP
RemoteIPTrustedProxy 127.0.0.1 ::1
You can now enable the configuration of remoteip and restart Apache :
text
a2enconf remoteip
service apache2 restart
Return to the section "Configure domain name" of Custom domain + HTTPS page to continue the configuration.