1

(I asked this question on StackOverflow yesterday, but I didn't receive an answer yet, and maybe Serverfault is a better platform for this question. Also I can't post pictures here, but I hope the question is clear without them. If not, please look at the SO post.)

I'd like to set up a Jitsi Meet instance on my Debian server via Docker container. I've got an Apache webserver running on it and want to add the Jitsi server on a subdomain.

I followed the tutorial on how to do this and I am able to reach the site, but not to join a session.

I guess there is some error in the Apache configuration (see below), but I don't really know.

There are some errors in the JS console, but the important one (I guess) is:

WebSocket connection to 'wss://jitsi.example.com/xmpp-websocket?room=strangeshopsincorporateagain' failed: Error during WebSocket handshake: 'Upgrade' header is missing

Jitsi configuration file (the important parts; I didn't change anything else):

...
#
# Basic configuration options
#

# Directory where all configuration will be stored
CONFIG=~/.jitsi-meet-cfg

# Exposed HTTP port
HTTP_PORT=8000

# Exposed HTTPS port
HTTPS_PORT=8443

# System time zone
TZ=Europe/Berlin

# Public URL for the web service (required)
PUBLIC_URL=https://jitsi.example.com

# IP address of the Docker host
# See the "Running behind NAT or on a LAN environment" section in the Handbook:
# https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker#running-behind-nat-or-on-a-lan-environment
DOCKER_HOST_ADDRESS=192.168.178.57
# local IP address of my server
...

Apache configuration:

<VirtualHost *:443>
        ServerName jitsi.example.com:443

        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem

        AllowEncodedSlashes NoDecode

        SSLProxyEngine On
        SSLProxyVerify None
        SSLProxyCheckPeerCN Off
        SSLProxyCheckPeerName Off

        RewriteEngine on
        RewriteCond ${HTTP:UPGRADE} ^WebSocket$ [NC]
        RewriteCond ${HTTP:CONNECTION} ^Upgrade$ [NC]
        RewriteRule .* "wss://localhost:8443/$1" [P,L]

        ProxyPreserveHost On

        ProxyPass / https://localhost:8443/ nocanon
        ProxyPassReverse / https://localhost:8443/

        ProxyPass /xmpp-websocket wss://localhost:8443/xmpp-websocket
        ProxyPassReverse /xmpp-websocket wss://localhost:8443/xmpp-websocket

        ProxyRequests off
</VirtualHost>

And the output of apache2ctl -S

VirtualHost configuration:
*:80                   example.com (/etc/apache2/sites-enabled/example.conf:1)
*:443                  is a NameVirtualHost
         default server jitsi.example.com (/etc/apache2/sites-enabled/jitsi.conf:1)
         port 443 namevhost jitsi.example.com (/etc/apache2/sites-enabled/jitsi.conf:1)
         port 443 namevhost example.com (/etc/apache2/sites-enabled/example.conf:39)
         port 443 namevhost office.example.com (/etc/apache2/sites-enabled/office-code.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex rewrite-map: using_defaults
Mutex ssl-stapling-refresh: using_defaults
Mutex ssl-stapling: using_defaults
Mutex proxy: using_defaults
Mutex ssl-cache: using_defaults
Mutex default: dir="/var/run/apache2/" mechanism=default
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33
  • Does this answer your question? [Apache server : Reverse proxy and websockets via mod\_proxy\_wstunnel](https://serverfault.com/questions/523345/apache-server-reverse-proxy-and-websockets-via-mod-proxy-wstunnel) – Jacob Evans Dec 20 '20 at 16:28
  • Thanks for the response, but no, it doesn't; nothing changed. – anonymus1994.1 Dec 20 '20 at 22:43

0 Answers0