Cómo usar Nginx Proxy Manager

Cómo usar Nginx Proxy Manager
Nginx es un servidor web popular y un proxy inverso utilizado para enrutar el tráfico y redirigirlo a otro servidor. Configurar NGINX como un proxy inverso puede llevar mucho tiempo y propensos a errores y mal configuraciones. Esta guía le mostrará cómo configurar y usar el administrador de proxy Nginx para una gestión y configuración más fáciles. Antes de sumergirse en el tutorial, hay algunos requisitos previos. Necesitará:
  1. Un servidor de Linux
  2. Docker y Docker componen instalados en el servidor
  3. Raíz o usuario con permisos de sudo

Si tienes todo esto, déjanos sumergirnos.

¿Cuál es el administrador de proxy nginx??

El Nginx Proxy Manager (NPM) es un sistema de gestión de proxy inversa que se ejecuta en Docker. NPM se basa en un servidor NGINX y proporciona a los usuarios una interfaz web limpia, eficiente y hermosa para una gestión más fácil. La herramienta es fácil de configurar y no requiere que los usuarios sepan cómo trabajar con servidores NGINX o certificados SSL. NPM es una herramienta de código abierto mantenida por desarrolladores de todo el mundo. Es muy adecuado para entornos de servidores pequeños y entornos de laboratorio privado. Este tutorial se centrará en mostrarle cómo implementar el Nginx Proxy Manager:

Instalación de Docker y SQLite

Nginx Proxy Manager se ejecuta como un contenedor Docker; Por lo tanto, requiere Docker y Docker-Compose instalados en el servidor. En aras de la simplicidad, solo ilustraré cómo instalar Docker en Ubuntu. Consulte la documentación de Docker como referencia sobre cómo configurarla en otros sistemas. Para instalar Docker en Ubuntu, comience al eliminar las instalaciones antiguas de Docker. Omita esto si no hay ninguno disponible.

sudo apt-get eliminar Docker Docker-Engine Docker.io contenedord runc

A continuación, instale el repositorio y todas las dependencias utilizando los comandos:

actualización de sudo apt-get
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-liberase -y

Agregue la tecla GPG del repositorio de Docker:

curl -fssl https: // descargar.estibador.com/linux/ubuntu/gpg | Sudo GPG--Dearmor -O/USR/Share/Keyrings/Docker-Archive-Keyring.gpg

A continuación, agregue el repositorio estable usando el comando ECHO como:

echo "Deb [arch = amd64 firmed-by =/usr/share/keyrings/docker-archive-keyring.gpg] https: // descargar.estibador.com/linux/ubuntu \
$ (lsb_release -cs) estable "| sudo tee/etc/apt/fuentes.lista.D/Docker.Lista> /dev /null

Finalmente, actualice los repositorios e instale Docker utilizando los comandos:

sudo apt-get actualización && sudo apt-get install Docker-ce Docker-CE-Cli Containerd.IO Docker -Compose -y

Ahora ejecute Docker y habilita en el inicio:

sudo systemctl habilitar Docker.servicio
sudo systemctl start docker.servicio
sudo systemctl habilitar contenedord.servicio

Instalar sqlite

El siguiente paso es instalar la base de datos SQLite que utilizaremos para ejecutar NPM. Es bueno tener en cuenta que también puede usar la base de datos MySQL.

Implementar NPM en Docker

Para implementar el administrador de proxy nginx, necesitamos crear un archivo Docker-compuesto para ejecutar Docker e inicializar el contenedor. Para obtener más información sobre el archivo de composición de Docker y cómo funciona, considere los recursos vinculados aquí. Le recomiendo que cree el archivo Docker-Compose en un directorio que tiene permisos completos.

nano docker-compuesto.yaml

A continuación, agregue las siguientes líneas al archivo de composición, guarde y cierre.

Versión: "3"
servicios:
Aplicación:
Imagen: 'JC21/Nginx-Proxy-Manager: Último'
reiniciar: siempre
Puertos:
# Puerto HTTP
- '80: 80 '
# Puerto HTTPS:
- '443: 443'
# Ui administrador
- '81: 81 '
ambiente:
Db_sqlite_file: "/data/npm.sqlite "
Volúmenes:
- ./Data:/Data
- ./Letsencrypt:/etc/Letsencrypt

Finalmente, ejecute el comando Docker-Compose como:

Docker -compuesto -d -d

Esto implementará la pila de la imagen NPM especificada en el archivo Docker-Compose. Salida de creación:

Creación de red "Debian_Default" con el controlador predeterminado
Aplicación de la aplicación (JC21/Nginx-Proxy-Manager: Último) ..
Último: Tirando de JC21/Nginx-Proxy-Manager
801BFAA63EF2: Tirar completo
7927CD3BBE4C: Tire completo
F53B85628DA5: Tire completo
E834C30791F9: Tire completo
6B68B3708DD5: Tire completo
963fe519b5fd: Tire completo
37E54D057F10: Tire completo
-------------------------------------
DIGEST: SHA256: B33AAB798A6150BA7DD238D36936D0882A312C983A0B3EB261A6DCBD5E6A3425
Estado: descarga de imagen más nueva para JC21/Nginx-Proxy-Manager: Último
Creando debian_app_1 ... hecho

Acceder a la interfaz de usuario de NPM

Una vez creado y en ejecución, puede iniciar sesión en la interfaz utilizando la dirección IP y el puerto especificado en el archivo Docker-Compose. En este caso, el puerto 81.

http: // ip: 81

Sería mejor si aterrizaras en la usuario de inicio de sesión de NPM. Ingrese el nombre de usuario y la contraseña como:

[email protected] y Changeme, respectivamente.

En el inicio de sesión inicial, deberá actualizar los detalles del administrador.

Una vez que actualice todos los detalles del usuario, llegará al tablero principal desde donde puede configurar sus hosts proxy:

Trabajando con NPM

Habiendo instalado y asegurado que el administrador proxy se está ejecutando, podemos agregar un host proxy para exponer un servicio que se ejecuta en el servidor. Navegue a los hosts: hosts proxy y haga clic en Agregar host proxy.

Seleccione el esquema como HTTP o HTTPS. Si el servicio que desea exponer no admite el tráfico HTTPS, quede con HTTP. A continuación, agregue los nombres de dominio, el nombre de host de reenvío y la IP. También puede seleccionar exploits comunes de bloque para mayor seguridad.

Una vez que haya expuesto el servicio, intente acceder a él utilizando el nombre de host o IP y el puerto especificados. Este servicio debe ser accesible. También puede administrar el proxy en la lista de hosts proxy.

Lista de acceso a NPM

En algunos casos, es posible que necesitemos exponer una aplicación o servicio en la lista de proxy de NPM a direcciones IP específicas. Para configurar esto, puede usar la lista de acceso de NPM.

Navegue a la lista de acceso y haga clic en la lista Agregar proxy. Aquí, dales una lista de acceso un nombre; También puede seleccionar satisfacer cualquier.

En la pestaña de autorización, configure los nombres de usuario y las contraseñas que utilizará para iniciar sesión en el servicio.

Navegue a la pestaña de acceso y agregue las direcciones IP que desea permitir las conexiones y negar todas las demás.

Para adjuntar la lista de acceso a una aplicación web específica, navegue a los hosts: host proxy y seleccione su host. Haga clic en Editar y configure la lista de acceso como se define anteriormente.

Provisión de certificaciones SSL

NPM también le permite aprovisionar los certificados SSL en varios nombres de dominio. Antes de agregar un nombre de dominio a la disposición SSL, asegúrese de que el dominio apunte al servidor proxy NPM.

Navegue a los certificados SSL y haga clic en Agregar certificado SSL. Proporcione los nombres de dominio y la dirección de correo electrónico para Let's Cifrar. Finalmente, acepte los términos de servicio y guarda. También puede agregar un desafío DNS, pero no cubriré eso en este tutorial.

Esto creará un nuevo certificado SSL confiable.

Personalizar la página de inicio

También puede personalizar la página web predeterminada para el servidor NPM. Haga clic en Configuración - Sitio predeterminado y seleccione Editar. Puede elegir mostrar un error 404, redirigir a una nueva dirección o crear una página personalizada.

Por ejemplo, a continuación hay un código HTML para mostrar 403 prohibidos.







403 - Prohibido


Fuente: CodePen https: // CodePen.IO/Blecaf/Pen/Nloepy

Conclusión

Este tutorial ha examinado la instalación e implementación del Nginx Proxy Manager en un servidor Ubuntu que se ejecuta Docker. Luego cubrimos cómo configurar NPM y agregar hosts al administrador proxy.

Recuerde: la experimentación constante es la clave para el dominio, así que experimente!