🌐Docker Nginx Proxy Manager

· 2 min de lectura
🌐Docker Nginx Proxy Manager

¿Qué es Nginx Proxy Manager? Pues como su nombre indica es un servidor proxy inverso, explicado a grosso modo sirve para poder servir por el puerto 80 y 443 (https) webs, pero la principal utilidad es que puede redireccionar peticiones a sitios que tengas ya no sólo en la misma máquina sino en otras máquinas diferentes. Sí el típico docker que montas en el puerto 20000 porque lógicamente sólo puedes exponer un sitio por el puerto 80 sin instalar un servidor dns etc, pero eso es otro tema.

En este caso la magia es que vamos a tener en minutos funcionando esta herramienta bajo docker utilizando este docker compose además de con certificado Let's encrypt ya que esta herramienta también se encarga de gestionar estos certificados.

version: '3.8'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: always
    ports:
      # These ports are in format <host-port>:<container-port>
      - '80:80' # Public HTTP Port
      - '443:443' # Public HTTPS Port
      - '81:81' # Admin Web Port
      # Add any other Stream port you want to expose
      # - '21:21' # FTP
    environment:
      # Mysql/Maria connection parameters:
      DB_MYSQL_HOST: "db"
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: "npm"
      DB_MYSQL_PASSWORD: "password"
      DB_MYSQL_NAME: "npm"
      # Uncomment this if IPv6 is not enabled on your host
      # DISABLE_IPV6: 'true'
    volumes:
      - /dockercarpeta/nginx-proxy-manager/data:/data
      - /dockercarpeta/nginx-proxy-manager/letsencrypt:/etc/letsencrypt
    depends_on:
      - db

  db:
    image: 'jc21/mariadb-aria:latest'
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: 'npm'
      MYSQL_DATABASE: 'npm'
      MYSQL_USER: 'npm'
      MYSQL_PASSWORD: 'password'
    volumes:
      - /dockercarpeta/mysql:/var/lib/mysql

Una vez tengamos nuestro docker corriendo debemos ingresar a http://ip del servidor:81
Puerto 81 es como vemos el que le hemos asignado pero puede ser cualquier otro, una vez dentro veremos una pantalla de login.

Los datos para acceder por defecto son estos que después nos obligará a establecer los nuestros propios.

Email:    admin@example.com
Password: changeme

Ahora una vez dentro no me voy a parar en explicarlo porque es super sencillo e intuitivo tenemos que ir a host y crear uno nuevo, básicamente hay que meter los datos del domino que apunta a este nuestro servidor y los datos del servidor donde tenemos la página web sirviendo, cabe remarcar que el dominio o subdominio que queramos apuntar hay que establecerle un registro A con la ip de este servidor no el que tenemos la web lógicamente.