Ir al contenido principal

Usando Nginx Proxy Manager

Instalacion

Para el proceso de instalacion de Nginx Proxy Manager  te recomiendo que uses el siguiente docker compose docker compose y si no tienes idea de como ejecutar el stack puedes usar la Introducción a los comandos de uso comun y considereciones 

Antes de continuar necesitaremos un servicio el cual expondremos a internet, en este caso usaremos FileBrowser como ejemplo, te invito a que generes una instancia de este servicio o cualquier otro listado en Servicios Con Docker Compose.

Ademas tendras que ingresar al panel de control de Nginx Proxy Manager, para esto, estando en la misma red que el servidor ingresaremos a ip-del-servidor:81 

Posteriormente para el primer ingreso usaremos las siguientes credenciales

Usuario: admin@example.com
Password: changeme

Al ingresar te pedira cambiar la contraseña y el correo, lo haces (no tienen porque ser reales pero si debe seguir formato de correo electronico) y luego desde la pestaña de Dashboard haces click sobre el boton de Proxy Host y posteriormente en Add Proxy Host

image.png

Ejemplos de uso del Proxy Inverso 

Aqui veemos como exponer una instancia del servicio filebrowser, su puerto interno lo encontraras en la documentacion oficial aunque en muchas ocaciones podras encontrar un ejemplo en los repositorios de Docker Hub Container Image Library, Ahi buscaras los docker compose y la seccion de puertos, veamos el siguiente fragmente de un docker-compose

services:        
    filebrowser:
        image: filebrowser/filebrowser:latest
        container_name: filebrowser
        ports:
           - 8009:80

En nuestro caso no necesitamos exponer este puerto y comentaremos las lineas de port y el puerto. Nos quedaremos con el dato de que el puerto interno (señalado siempre en el lado derecho) es el puerto 80 y tomaremos el nombre del contenedor y los ingresaremos de la siguiente manera.

En la seccion de Domain Names usaras el dominio generado por tu provedor DDNS visto anteriormente y un subdominio a elegir pero que no se repita, en mi caso fue cloud y el dominio es tinyfox.ddns.me.

image.png

Posteriormente en la pestaña SSL generamos un certificado y habilitamos las siguientes casillas para forzar la redireccion a el puerto 443

image.png

Por ultimo, al ser una aplicacion que usa WevDav para transmicion de archivos seleccionamos el engranaje para ir a la pestaña de Custom Nginx Configuration y agregamos el contenido mencionado en previamente mencionado en Nginx Proxy Manager

image.png

Pruebas

Para probar que todo quedo bien ingresa a la pagina que escribiste en la seccion de Domain Names y veras el servicio que creaste o no.

Extras

Recuerda que Nginx Proxy Manager es para servicios http, si quieres exponer un servicio que no sea de este estilo tendras que abrir otros puertos del modem que apunten al puerto del servidor o puedes usar Nginx Proxy Manager para redirigir este flujo a otros puertos y abrir estos de igual forma en el modem por si quisieras cambiar el puerto por defecto de una aplicacion y esta no te lo permitiera.
Si decides redirigir puertos con Nginx Proxy Manager tendras que alterar el docker compose de Nginx Proxy Manager y agregar los puertos internos y externos correspondiendes, ademas de que si el servicio usa UDP tendras que señalarlo en el docker compose de forma explicita ya que docker compose por defecto infiere que todos los puertos son TCP de la siguiente manera


services:        
    filebrowser:
        image: filebrowser/filebrowser:latest
        container_name: filebrowser
        ports:
           - 8009:80/TCP
           - 8009:80/UDP