• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Docker Nginx proxy manager con mariaDB
#1
Hola

En un hilo anterior se comentó como instalar un docker de Nginx.

En ese caso Nginx está usando una base de datos integrada, pero si vamos a tener muchas redirecciones/hosts/usuarios y permisos interesa hacer que Nginx tenga esos datos en un motor de base de datos mas "serio".

Nginx permite hacerlo usando mariaDB, pero no con PostgreSQL.

Tenemos dos opciones, hacerlo mediante un nuevo docker para mariaDB. O bien con el integrado en QTS.
Cualquier método es válido.

Aquí podemos discutir varias ventajas e inconvenientes:
-si usamos un docker de mariaDB en exclusiva, podemos tenerlos en su propia red de dockers a mod de pack. Están más "aislados" del resto pero gastamos mas recursos de nuestra Qnap por mantener dos dockers.
-si usamos la mariaDB integrada en QTS, ahorramos recursos y centralizamos mas BBDDs en ese mismo motor.

Independientemente de lo anterior, lo que si ganamos usando mariaDB es el tener una la mayor facilidad de hacer copia de seguridad de los datos. 
Si no nos sentimos cómodos con la consola podemos usar herramientas gráficas como phpMyAdmin.

En el caso que voy a describir voy a usar mariaDB 10 de QTS, phpMyAdmin y el docker de Nginx.

De MariaDB 10 necesitamos saber que puerto usa y cuales son sus credenciales para poder entrar en ella y gestionarla.

Vamos al lío. para hacerlo mas completo, vamos a suponer que no tenemos instalado mariaDB 10, ni phpMyAdmin.

Primero instalamos mariaDB, vamos al app center y lo instalamos
   

Ahora vamos a comprobar que nuestro servidor web de QTS está activo.
Para ello vamos al panel de control, Aplicaciones, Servidor Web y si hace falta lo activamos
   

Luego instalamos desde el App Center a phpMyAdmin
   

Inicializamos mariaDB 10 y seguimos su asistente de establecimiento de clave maestra
   

   

   

   

Como Qnap no integra una gestión web de los posibles servidores mariaDB desde el propio myPhpAdmin, hemos de editar el archivo de cfg de phpMyAdmin para que sepa como acceder a nuestra mariaDB.
Detenemos phpMyAdmin y por consola o por entorno gráfico tipo WinSCP accedemos como admin (sí, como admin, no vale otro usuario  Angry ) y editamos el archivo /share/conjunto_almacenamiento/.qpkg/phpMyAdmin/phpMyAdmin/config.inc.php

El conjunto de almacenamiento será algo del tipo MDx_DATA, CACHEDEVx_DATA

En ese archivo tendremos unas líneas de configuración de parámetros del servidor.
Code:
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;

Modificamos la del host indicando el puerto
Code:
$cfg['Servers'][$i]['host'] = 'localhost:3307';

Tras guardar el archivo, iniciamos la aplicación de phpMyAdmin y la lanzamos su web

   

Creamos una nueva base de datos en su interior de nombre "nginx_db"
   

Ahora creamos un usuario exclusivo para esta base de datos, por ejemplo "usernginx" clave "claveusernginx"
   

   

El punto 3 NO hay que activarlo, si lo hacemos tendrá accesos a todas las bases de datos mariaDB.

cuando pulsemos el botón inferior derecho de "Continuar", el usuario habrá sido creado.

Ahora ya podemos salir de phpMyAdmin y vamos con la creación del docker de Nginx.

Como siempre, para hacerlo más rápido usamos la cadena siguiente por consola
Code:
docker run -d -p 2080:80 -p 2081:81 -p 2443:443 --restart always --name="nginx" -v /share/DockerData/nginx/data:/data/ -v /share/DockerData/nginx/letsencrypt:/etc/letsencrypt/  -e "DB_MYSQL_HOST=ip_de_nuestra_nas" -e "DB_MYSQL_PORT=3307" -e "DB_MYSQL_USER=usernginx" -e "DB_MYSQL_PASSWORD=claveusernginx" -e "DB_MYSQL_NAME=nginx_db" -e "DISABLE_IPV6=true" jc21/nginx-proxy-manager:latest

Se hará la descarga e instalación, dejamos unos instantes a que se inicie el docker y ya podemos ir mediante nuestro navegador a http://ip_de_nuestra_nas:2081
   

El primer usuario es "admin@example.com" de clave "changeme" que al introducirlo ya iniciará el asistente de la primera configuración.
Para no repetir contenido, echamos una ojeada a este enlace.

Luego sólo quedaría hacer que nuestro enrutador haga que los puertos 80 y 443 públicos apunten a los puertos 2080 y 2443 de la ip de nuestra nas.
Un saludo

Agur eta ondo ibili

Ganekogorta (TS-469Pro, TVS-673e, QBoat Sunny, TS-453Be, TR-002 y QHora-301w) Ʀɐɯ0η
  Reply




Users browsing this thread: 1 Guest(s)