Nginx
Guía de uso y utilidades para nginx
Proxies inversos
En CommandCore hay diversos servicios que necesitan funcionar en diferentes puertos que colisionan entre sí. Para permitir el uso de todos ellos en la misma máquina se aplica un modelo de proxies inversos, mediante los cuales Nginx distribuye las peticiones y conexiones entre las diferentes aplicaciones.
Existe un script para facilitar la creación de nuevos proxies inversos para servicios https que lo necesiten.
Crear el subdominio en el panel DNS de Cloudflare
- Entrar al Dashboard de Cloudflare
- Localizar el panel de registros DNS del dominio
- Añadir un nuevo dominio de tipo CNAME apuntando al registro del servidor (commandcore.lemniscata.net) con el nombre deseado:
- Ejecutar el script de creación de proxy inverso
/etc/nginx/sites-avaiable/redirect <nombre> <url> <puerto>Argumento Descripción Ejemplo nombreNombre descriptivo para el archivo. Una sola palabra documentacionsubdominioEl subdominio que hemos configurado en el DNS docs.lemniscata.netpuertoPuerto al que redireccionar el tráfico. En este puerto debe estar escuchando la aplicación objetivo. 9999 - Documentar el proxy en esta página
Listado de proxies
Se listan aquí los proxies tanto activos como inactivos de CommandCore
| Servicio | Subdominio | Puerto interno | Tipo |
| BookStack | docs.lemniscata.net |
6875 | Simple |
| Cartago (Lemniscata) | cartgo.lemniscata.net |
15002 | Simple |
| Fototeca (Immich) | fototeca.lemniscata.net |
2283 | Simple |
| Lemniscata | lemniscata.net |
- | Personalizado |
| Pterodactyl | panel.lemniscata.net |
- | Personalizado |
| Static (Lemniscata) | static.lemniscata.net |
- | Acceso estático |
| WebAPI (Lemniscata) | webapi.lemniscata.net |
15001 | Simple |
Script de creación de proxies
En caso de pérdida, se documenta el script para crear proxies fácilmente.
Script /etc/nginx/sites-avaiable/redirect:
#!/bin/bash
name="$1"
domain="$2"
port="$3"
if [ "$#" -ne 3 ]; then
echo "Usage: $0 <name> <domain> <port>"
exit 1
fi
sed -e "s/%DOMAIN%/$domain/g" -e "s/%PORT%/$port/g" ./preset > "/etc/nginx/sites-available/${name}.conf"
rm "/etc/nginx/sites-enabled/${name}.conf"
ln -n "/etc/nginx/sites-available/${name}.conf" "/etc/nginx/sites-enabled/${name}.conf"
nginx -t
service nginx restart
certbot --nginx -d "${domain}"
Archivo de plantilla /etc/nginx/sites-avaiable/preset:
server {
listen 80;
server_name %DOMAIN%;
location / {
proxy_pass http://127.0.0.1:%PORT%;
proxy_ssl_verify off;
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_redirect off;
}
}