Configurar Nginx para Jitsi Meet
Contents
Editamos un archivo para nuestra configuración /etc/nginx/sites-enabled/jitsi.dominio.edu.ar.conf
types { # nginx's default mime.types doesn't include a mapping for wasm application/wasm wasm; } server { listen 80; server_name jitsi.dominio.edu.ar; set_real_ip_from RANGO.IP.PRIVADO.100; # IP del Proxy real_ip_header X-Real-IP; set $prefix ""; root /usr/share/jitsi-meet; # ssi on with javascript for multidomain variables in config.js ssi on; ssi_types application/x-javascript application/javascript; index index.html index.htm; error_page 404 /static/404.html; gzip on; gzip_types text/plain text/css application/javascript application/json image/x-icon application/octet-stream application/wasm; gzip_vary on; gzip_proxied no-cache no-store private expired auth; gzip_min_length 512; location = /config.js { alias /etc/jitsi/meet/jitsi.dominio.edu.ar-config.js; } location = /external_api.js { alias /usr/share/jitsi-meet/libs/external_api.min.js; } # ensure all static content can always be found first location ~ ^/(libs|css|static|images|fonts|lang|sounds|connection_optimization|.well-known)/(.*)$ { add_header 'Access-Control-Allow-Origin' '*'; alias /usr/share/jitsi-meet/$1/$2; # cache all versioned files if ($arg_v) { expires 1y; } } # load test minimal client, uncomment when used #location ~ ^/_load-test/([^/?&:'"]+)$ { # rewrite ^/_load-test/(.*)$ /load-test/index.html break; #} #location ~ ^/_load-test/libs/(.*)$ { # add_header 'Access-Control-Allow-Origin' '*'; # alias /usr/share/jitsi-meet/load-test/libs/$1; #} location ~ ^/([^/?&:'"]+)$ { try_files $uri @root_path; } location @root_path { rewrite ^/(.*)$ / break; } # Anything that didn't match above, and isn't a real file, assume it's a room name and redirect to / location ~ ^/([^/?&:'"]+)/(.*)$ { set $subdomain "$1."; set $subdir "$1/"; rewrite ^/([^/?&:'"]+)/(.*)$ /$2; } }
Configurar el nombre de host
El nombre del servidor debe ser un subdominio como “jitsi.dominio.edu.ar”. En primer lugar, debemos comprobar el nombre de host en /etc/hosts y cambiarlo cuando sea necesario.
$ hostnamectl set-hostname jitsi.dominio.edu.ar
Luego editamos el archivo/etc/hosts
:
127.0.0.1 localhost.localdomain localhost
x.x.x.x jitsi.dominio.edu.ar jitsi
Nota: x.x.x.x
es la IP pública de nuestro servidor.
Finalmente en el mismo equipo probamos que se puede hacer ping al dominio:
ping "$(hostname)"
Si todo funciona correctamente, deberíamos ver: jitsi.dominio.edu.ar
Configuramos el firewall
Los siguientes puertos tienen que estar abiertos en el firewall para permitir el tráfico al servidor Jitsi Meet:
- 80 TCP – para la verificación / renovación del certificado SSL con Let’s Encrypt
- 443 TCP – para el acceso general a Jitsi Meet
- 10000 UDP – para comunicaciones generales de vídeo/audio en red
- 22 TCP – si accedes a tu servidor usando SSH (cambia el puerto en consecuencia si no es el 22)
- 3478 UDP – para consultar el servidor stun (coturn, opcional, necesita cambiar config.js para habilitarlo)
- 5349 TCP – para comunicaciones de video/audio en red a través de TCP (cuando UDP está bloqueado, por ejemplo), servido por coturn
Si estás usando ufw, podés usar los siguientes comandos:
sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw allow 10000/udp sudo ufw allow 22/tcp sudo ufw allow 3478/udp sudo ufw allow 5349/tcp sudo ufw enable
Verificamos el estado del firewall con:
sudo ufw status verbose