@ -1,5 +1,15 @@
# Con Nginx Proxy Manager delante
# Con Nginx Proxy Manager delante
[Nginx Proxy Manager ](https://nginxproxymanager.com/ ) es un Nginx con panel web:
en vez de escribir archivos de configuración a mano, se dan de alta los dominios
desde un formulario y él pide los certificados de Let's Encrypt y los renueva
solo. Se suele montar como contenedor y hace de puerta única para todo lo que se
publica desde una red.
> **Ojo con la abreviatura.** En este proyecto `npm` es el gestor de paquetes de
> Node, el de `npm run dev` . No tienen nada que ver, así que aquí el proxy se
> escribe siempre con el nombre entero.
Este es el montaje cuando quien recibe del exterior no es el Nginx de la propia
Este es el montaje cuando quien recibe del exterior no es el Nginx de la propia
máquina, sino un **Nginx Proxy Manager** en otro sitio de la red:
máquina, sino un **Nginx Proxy Manager** en otro sitio de la red:
@ -7,7 +17,7 @@ máquina, sino un **Nginx Proxy Manager** en otro sitio de la red:
internet → router (80, 443) → Nginx Proxy Manager → 192.168.18.171:3000 → Node
internet → router (80, 443) → Nginx Proxy Manager → 192.168.18.171:3000 → Node
```
```
Con N PM delante, **el Nginx de la máquina de la web sobra** . Se puede dejar
Con Proxy Manager delante, **el Nginx de la máquina de la web sobra** . Se puede dejar
instalado sin más, pero no tiene que estar en medio: `adapter-node` ya sirve los
instalado sin más, pero no tiene que estar en medio: `adapter-node` ya sirve los
estáticos con sus cabeceras de caché correctas, y meter un segundo proxy solo
estáticos con sus cabeceras de caché correctas, y meter un segundo proxy solo
añade un salto y complica el recuento de direcciones IP, que sí importa (ver más
añade un salto y complica el recuento de direcciones IP, que sí importa (ver más
@ -47,17 +57,17 @@ dig +short www.senzapaura.es @1.1.1.1
## 2. Router
## 2. Router
Redirigir al equipo donde corre N PM:
Redirigir al equipo donde corre Proxy Manager :
```
```
80 TCP → < IP de N PM> :80
80 TCP → < IP de Proxy Manager > :80
443 TCP → < IP de N PM> :443
443 TCP → < IP de Proxy Manager > :443
```
```
El 80 hace falta aunque todo vaya por HTTPS: es por donde Let's Encrypt hace su
El 80 hace falta aunque todo vaya por HTTPS: es por donde Let's Encrypt hace su
comprobación.
comprobación.
## 3. El proxy, en N PM
## 3. El proxy, en Proxy Manager
**Hosts → Proxy Hosts → Add Proxy Host**
**Hosts → Proxy Hosts → Add Proxy Host**
@ -79,7 +89,7 @@ vieja de la web después de un despliegue.
En la pestaña **SSL** : «Request a new SSL Certificate», con **Force SSL** y
En la pestaña **SSL** : «Request a new SSL Certificate», con **Force SSL** y
**HTTP/2** encendidos.
**HTTP/2** encendidos.
En **Advanced** , nada. En particular, no hace falta tocar las cabeceras: N PM ya
En **Advanced** , nada. En particular, no hace falta tocar las cabeceras: Proxy Manager ya
manda `X-Forwarded-For` , `X-Forwarded-Proto` y `X-Forwarded-Host` .
manda `X-Forwarded-For` , `X-Forwarded-Proto` y `X-Forwarded-Host` .
## 4. El `.env` del servidor
## 4. El `.env` del servidor
@ -128,7 +138,7 @@ curl -I http://192.168.18.171:3000/
```
```
Si eso no contesta 200, el problema está en el servidor y no en el DNS ni en
Si eso no contesta 200, el problema está en el servidor y no en el DNS ni en
N PM, y es ahí donde hay que mirar:
Proxy Manager , y es ahí donde hay que mirar:
```sh
```sh
journalctl -u senzapaura -n 50 --no-pager
journalctl -u senzapaura -n 50 --no-pager