Jitsi Meet (Docker) detrás de un proxy inverso Nginx
Publicado el 05.11.2025
Cómo instalar Jitsi Meet (Docker) detrás de Nginx Reverse Proxy
En el artículo anterior desplegamos un servidor Jitsi Meet básico con Docker.
Es una excelente forma de arrancar videoconferencias rápidamente, pero en producción el servidor Jitsi a menudo debe funcionar en el mismo host donde ya están otras aplicaciones web.
Para que todo conviva en paz, hay que ocultar Jitsi detrás de un Nginx reverse proxy.
Nginx se encargará del SSL, de los puertos 80/443 y hará de proxy de las peticiones hacia los contenedores Jitsi que escuchan en puertos internos.
Arquitectura
El esquema objetivo se ve así:
- Usuario →
https://meet.your-domain.com→ Nginx (puerto 443) - Nginx →
http://192.168.1.131:8400→ Contenedor Web de Jitsi (interfaz web y WebSocket) - Usuario → (puerto 10000/UDP) → Contenedor JVB de Jitsi (flujo de vídeo/audio)
Importante: Nginx solo proxifica el tráfico web.
Los medios (vídeo y audio por WebRTC) van directamente al Jitsi Videobridge por el puerto 10000/UDP.
Paso 1. Configurar Jitsi Meet (.env)
Antes de configurar el proxy hay que decirle a Jitsi que ahora HTTPS y los certificados los gestiona el Nginx externo.
Abra .env y establezca:
DISABLE_HTTPS=1
HTTP_PORT=8400
HTTPS_PORT=8443
ENABLE_LETSENCRYPT=0
PUBLIC_URL=https://meet.your-domain.com/
Ahora reinicie Jitsi:
cd /path/to/docker-jitsi-meet
docker compose down
docker compose up -d
Compruebe que el contenedor web escucha en el puerto 8400:
docker ps | grep web
Paso 2. Configurar Nginx Reverse Proxy
Cree la configuración:
sudo nano /etc/nginx/sites-available/meet.your-domain.com.conf
Agregue:
upstream jitsi {
server 192.168.1.131:8400;
}
server {
listen 80;
server_name meet.your-domain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name meet.your-domain.com;
ssl_certificate /etc/letsencrypt/live/meet.your-domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/meet.your-domain.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
client_max_body_size 0;
proxy_buffers 8 32k;
proxy_buffer_size 64k;
location / {
proxy_pass http://jitsi;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_read_timeout 300s;
}
location /xmpp-websocket {
proxy_pass http://jitsi;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_read_timeout 86400s;
}
location ~ ^/colibri-ws/ {
proxy_pass http://jitsi;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_read_timeout 86400s;
}
location /http-bind {
proxy_pass http://jitsi;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 60s;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico|woff2?|ttf|svg|eot)$ {
proxy_pass http://jitsi;
proxy_cache off;
expires 1y;
add_header Cache-Control "public, immutable";
}
}
Active la configuración:
sudo ln -s /etc/nginx/sites-available/meet.your-domain.com.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Paso 3. Configurar el Firewall
El tráfico de medios de Jitsi usa UDP, por lo que el puerto 10000 debe estar accesible directamente.
Ejemplo de reenvío de puertos
Externo: 10000/UDP → Interno: 192.168.1.131:10000/UDP
Para UFW
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 10000/udp
sudo ufw reload
Si este puerto no está abierto, los participantes de la conferencia no podrán conectarse al vídeo y al audio.
Paso 4. Verificar la autenticación (si está habilitada)
Si en .env está habilitado:
ENABLE_AUTH=1
AUTH_TYPE=internal
Cree usuarios:
docker compose exec prosody prosodyctl register user1 meet.jitsi StrongPassword
La autenticación funcionará sin cambios, ya que Nginx simplemente hace de proxy del tráfico XMPP.
Resumen
Ahora su Jitsi Meet funciona detrás de Nginx reverse proxy:
- Jitsi (.env) sabe que HTTPS está deshabilitado y escucha en el puerto
8400. - Nginx (.conf) atiende
443, y hace proxy de/,/xmpp-websocket,/colibri-wsy/http-bind. - Firewall reenvía
10000/UDPdirectamente al JVB.
Puede alojar Jitsi junto a otros sitios y servicios, y Nginx se convierte en la puerta de entrada única a Internet.
Reseñas relacionadas
La experiencia de colaboración dejó una impresión sumamente positiva, principalmente por el profesionalismo y el enfoque para resolver los problemas que surgieron.
mendarinno384 · Jitsi Meet: Zoom personal, configuración de Jitsi Meet en Docker y en VPS
11.11.2025 · ⭐ 5/5
La experiencia de colaboración dejó una impresión sumamente positiva, principalmente por el profesionalismo y el enfoque para resolver los problemas que surgieron.
Había que hacer funcionar n8n, Redis y la base de datos. Lo había encargado antes a otro proveedor; todo se rompía constantemente. Se lo encargué a Mijaíl y al día siguiente todo funcionó rápido, ¡como un reloj!
christ_media · Instalación de n8n en su servidor VPS. Configuración de n8n, Docker, IA, Telegram
Comprador experimentado24.09.2025 · ⭐ 5/5
Había que poner en marcha n8n, redis y la base de datos. Contraté antes a otro proveedor, y todo se rompía constantemente. Lo encargué a Mikhail, y al día siguiente ¡todo empezó a funcionar rápido, como un reloj!
Gracias por el trabajo rápido y bien hecho. Todo se hizo de manera ágil y como debía ser!
Dr-zelenin · Instalación de n8n en su servidor VPS. Configuración de n8n, Docker, IA, Telegram
06.09.2025 · ⭐ 5/5
Gracias por el trabajo rápido y bien hecho. Todo se hizo con prontitud y tal como se necesitaba!
Solución rápida al problema, ¡recomiendo a Mijaíl como profesional a todo el mundo! Intenté montar una configuración similar por mi cuenta y siguiendo consejos de IA, y acabé gastando mucho tiempo y dinero (por el tiempo de inactividad del servidor). Así que mi consejo final: acudan a profesionales, sale más barato =) Gracias a Mijaíl por su profesionalidad.
ladohinpy · Instalación de n8n en su servidor VPS. Configuración de n8n, Docker, IA, Telegram
25.08.2025 · ⭐ 5/5
Solución rápida al problema, ¡recomiendo a Mikhail como profesional! Intenté montar una configuración similar por mi cuenta y siguiendo consejos de redes neuronales, y acabó siendo una pérdida de mucho esfuerzo y dinero (por el tiempo de inactividad del servidor). Así que mi consejo al final: acudan a profesionales, saldrá más barato =) Gracias a Mikhail por su profesionalismo.
Mijaíl configuró otro VPS. Rápida y profesionalmente sorteó ciertas limitaciones de los proveedores de hosting.
NadoBy · Instalación de N8n en su servidor VPS. Configuración de n8n, Docker, IA, Telegram
Cliente acostumbrado12.08.2025 · ⭐ 5/5
Mijaíl completó la configuración de otro VPS. De forma rápida y profesional, sorteando ciertas limitaciones impuestas por los proveedores de hosting.
¡Excelente trabajo, gracias! ¡Mijaíl es un profesional, lo recomiendo!
Dina_Perova · Instalación de n8n en su servidor VPS. Configuración de n8n, Docker, IA, Telegram
Cliente acostumbrado03.07.2025 · ⭐ 5/5
¡Excelente trabajo, gracias! Mikhail es un profesional en lo suyo, ¡lo recomiendo!