GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Nginx Proxy Manager Synology NAS ¡Instrucciones de configuración!

Hoy veremos cómo configurar Nginx Proxy Manager en un Synology NAS.

Si está exponiendo algún servicio en su red, usar un proxy inverso es una excelente manera de aumentar la seguridad y el rendimiento. Un proxy inverso es un servidor que se encuentra frente a sus servidores web y reenvía las solicitudes de los clientes a los servidores web. En términos simples, solo tiene que exponer un servidor (usando los puertos 80/443) y podrá exponer tantos servicios web como desee.

Este es un ejemplo del flujo de red de un proxy inverso (simplificado):

Tenga en cuenta que esta es una alternativa al Portal de aplicaciones de Synology donde puede configurar un proxy inverso. Si sus intenciones son solo cree un proxy inverso, es posible que desee usarlo en su lugar, ya que no es necesaria ninguna configuración (¡aparte de la configuración del proxy inverso)!

1. Instrucciones de configuración:Nginx Proxy Manager Synology NAS

Este tutorial utilizará un Synology NAS y Docker. Dado que Nginx Proxy Manager usa una base de datos, necesitaremos instalar dos contenedores diferentes. Uno para nuestra base de datos y otro para Nginx Proxy Manager. De forma predeterminada, Synology usa los puertos 80 y 443, por lo que usar nuestra interfaz de red host no es ideal. Por esta razón, crearemos una interfaz de red macvlan (en Docker) que nos permitirá evitar este conflicto de puertos.

1. Instala Docker del paquete de Synology Centro .

2. Necesitamos crear algunas carpetas que asignaremos a nuestros contenedores Docker. De forma predeterminada, el paquete Docker creará una carpeta llamada docker una vez que haya terminado de instalarse. Dentro de esta carpeta, vamos a crear una carpeta llamada mariadb y nginx-proxy .

3. Dentro del nginx-proxy carpeta, cree dos subcarpetas denominadas datos y letsencrypt .

4. Crear y subir un archivo llamado config.json al nginx-proxy carpeta. Este archivo debe contener los siguientes contenidos. ¡Asegúrese de cambiar SYNOLOGY_NAS_IP por la dirección IP de su Synology NAS!

{
   "database": {
   "engine": "mysql",
   "host": "SYNOLOGY_NAS_IP",
   "name": "nginxproxymanager",
   "user": "nginxproxymanager",
   "password": "nginxproxymanager",
   "port": 3306
  }
}

5. ¡La configuración de la carpeta está completa!

1.1 Configuración de interfaz de red Macvlan y Bridge Docker

1. Asegúrese de que puede conectarse mediante SSH a su Synology NAS. Abrir Control Panel , seleccione Terminal y SNMP y habilitar SSH Servicio. Si utiliza el cortafuegos de Synology, asegúrese de permitir el tráfico del puerto 22. Creé un video sobre cómo usar SSH en su Synology NAS si tiene algún problema.

2. SSH en su Synology NAS utilizando su herramienta SSH favorita.

3. Necesitamos crear una interfaz de red Docker macvlan. Primero, debemos determinar qué interfaces de red existen actualmente (en su Synology NAS) y anotar el nombre del adaptador. Para hacer esto, ejecute el siguiente comando y anote el nombre de la interfaz de red que tiene la dirección IP de su Synology NAS (en este ejemplo, la mía es eth0).

ifconfig

4. A continuación, debe ejecutar el siguiente comando mientras sustituye la subred correcta (la mayoría son 192.168.1.0/24 o 192.168.0.0/24 de forma predeterminada). También debe elegir una dirección IP que le gustaría usar y que no esté actualmente en uso. Usaré 192.168.1.198. NOTA :npm_network será el nombre de la red (puede sustituirlo como desee).

sudo docker network create -d macvlan -o parent=eth0 --subnet=192.168.1.0/24 --gateway=192.168.1.1 --ip-range=192.168.1.198/32 npm_network

5. Nuestra red ya está creada. Ahora podemos salir de nuestra sesión SSH y deshabilitarla en DSM (si no la usará). Si lo está deshabilitando y creó una regla de firewall para él, también debe desactivar la regla de firewall.

6. A continuación, debemos crear una red puente. Esto es lo que permitirá que nuestro host (NAS) se comunique con nuestro contenedor Nginx Proxy Manager. Abrir Docker y navegue hasta la Red sección. Seleccione Agregar e ingrese una subred que no esté actualmente en uso. La dirección IP del puente que estoy creando será 192.168.10.2.

7. ¡Ambas interfaces de red ya están configuradas!

1.2 Instalación y configuración de MariaDB

Nginx Proxy Manager requiere que se configure una base de datos para que funcione correctamente. Si bien Synology ofrece un paquete MariaDB, me gusta separarlo creando un segundo contenedor Docker solo para la base de datos.

1. Abra Docker , navegue hasta el Registro y busque MariaDB . Descarga la última versión de MariaDB .

2. Una vez que la imagen haya terminado de descargarse, vaya a Imagen. y haga doble clic en mariadb para configurar un nuevo contenedor.

3. Asigne un nombre al contenedor y luego seleccione Avanzado Configuración .

4. Seleccione Habilitar reinicio automático .

5. En el Volumen sección, seleccione Agregar Carpeta y luego seleccione mariadb carpeta que creamos anteriormente. En el Monte Ruta sección, escriba /var/lib/mysql .

6. En el Puerto Configuración sección, cambie el puerto local a 3306 . NOTA :si tiene que usar algo que no sea 3306 como puerto, debe actualizar config.json archivo que creamos anteriormente.

7. En el Medioambiente sección, necesitamos crear cuatro variables. Estas variables son las que almacenarán nuestra contraseña de root, el nombre de la base de datos, el nombre de usuario y la contraseña. NOTA :si no desea utilizar los valores a continuación (nginxproxymanager), puede cambiar esto a lo que desee. Solo asegúrese de actualizar el archivo config.json que creamos anteriormente con la nueva información.

8. Seleccione Aplicar y crear el contenedor. ¡La base de datos ya ha sido creada!

1.3 Configuración del cortafuegos:Nginx Proxy Manager Synology NAS

Dado que estamos utilizando una interfaz de red macvlan, no hay reglas de firewall que debamos configurar para Nginx Proxy Manager. Sin embargo, el contenedor de MariaDB está utilizando la interfaz de red del host y, por ese motivo, necesita una regla de firewall para permitir el tráfico. Si no ha configurado el firewall de Synology, creé un tutorial sobre cómo puede hacerlo (y le sugiero que lo haga).

1. Abra el Control Panel , seleccione Seguridad , luego Cortafuegos . Seleccione Editar reglas y agregue un permitir regla para el puerto 3306 . NOTA :si está utilizando un puerto diferente en el archivo config.json que creamos anteriormente, deberá usar ese puerto en lugar del 3306.

1.4 Configuración del contenedor Nginx Proxy Manager:Synology NAS

1. Abra Docker , navegue hasta el Registro y busque nginx-proxy-manager . Descarga la última versión de jc21/nginx-proxy-manager .

2. Una vez que la imagen haya terminado de descargarse, vaya a Imagen. sección y haga doble clic en jc21/nginx-proxy-manager para configurar un nuevo contenedor.

3. Asigne un nombre al contenedor y seleccione Avanzado Configuración .

4. Seleccione Habilitar reinicio automático .

5. En el Volumen sección, necesitamos crear dos asignaciones de carpetas y una asignación de archivos. Seleccione Agregar carpeta y agrega los datos carpeta y agregue la ruta de montaje /data . A continuación, seleccione letsencrypt carpeta y agregue la ruta de montaje /etc/letsencrypt . Seleccione Agregar Archivo y seleccione config.json archivo que creamos anteriormente con la ruta de montaje /app/config/production.json .

6. En Red , agregue la npm_network y npm_bridge redes y eliminar puente.

7. Haga coincidir el Puerto Configuración para ser como la imagen de abajo. Si está utilizando 4443, 8080 u 8081 para cualquier cosa, puede cambiar los puertos a algo que no se esté utilizando actualmente.

8. Seleccione Aplicar ¡y crea el contenedor! ¡Dé al contenedor unos minutos y debería poder acceder al portal de administración web a través de la dirección IP npm_network y el puerto 81!

http://[npm_network]:81

2. Configuración de Nginx Proxy Manager:Synology NAS

1. Inicie sesión con la dirección de correo electrónico [email protected] y contraseña cambiarme .

2. Cuando se le solicite, cambie su nombre y dirección de correo electrónico, luego configure su contraseña.

3. ¡Nginx Proxy Manager ahora está configurado! Asegúrese de reenviar puertos 80 y 443 en su enrutador al macvlan red que creamos arriba.

ERROR DE PUERTA DE ENLACE INCORRECTA

Ciertas personas están experimentando errores de "puerta de enlace incorrecta" cuando intentan iniciar sesión. Después de solucionar este problema por un tiempo (y algunas sugerencias útiles en los comentarios), en realidad hay dos formas de solucionarlo. :

1. Si su NAS tiene varias NIC y tiene varias direcciones IP asignadas, en el archivo "config.json", ingrese la otra dirección IP de su NAS.

2. Mantenga la interfaz de red de docker bridge predeterminada conectada a ambos contenedores y use esa dirección IP en el archivo config.json.

3. Uso del administrador de proxy de Nginx

Ahora que configuramos Nginx Proxy Manager, ¡es importante saber cómo usarlo! Creé un tutorial que puede seguir que le mostrará cómo exponer Plex y configurar un certificado SSL. El tutorial es bastante sencillo, pero destaca cómo puede exponer prácticamente cualquier servidor web de forma rápida, fácil y segura.

4. Conclusión

Este fue un tutorial bastante complejo, pero espero que esté lo suficientemente desglosado para que se entienda fácilmente. No es normal que necesite configurar dos contenedores Docker diferentes para que un contenedor funcione, pero en mi opinión, esta es la mejor manera de hacer que Nginx Proxy Manager funcione en un Synology NAS.

Gracias por leer el tutorial. Si tiene alguna pregunta, ¡déjela en los comentarios!


Docker
  1. Guía para principiantes sobre la política de reinicio de Docker

  2. Cómo acceder a archivos fuera de un contenedor Docker

  3. Primeros pasos con Docker Compose en Linux

  4. Cómo utilizar el comando de inspección de Docker

  5. Implementar una instalación de MariaDB de Docker de producción

¿Hacer una copia de seguridad (Exportar/Importar) de su base de datos MySQL?

Cómo instalar Snap en Ubuntu

Cómo instalar Skype en Ubuntu 21.04

Configuración de una única instalación de Ubuntu como una opción de arranque dual y un dispositivo VirtualBox en Windows 10

Cómo instalar AnyDesk en Fedora 35

Cómo habilitar el servicio SSH en Rocky Linux 8 / CentOS 8