Alojar un sitio web estático con Nginx Proxy Manager

2023-04-10

Además de proxy inverso y permitir la solicitud/renovación de certificaos de diferentes entidades, podemos utilizar Ngnix Proxy Manager (NPM) para alojar un sitio web estático, por ejemplo Hugo como es el caso de este blog.

NPM

Utilizo un contenedor docker para levantar Ngnix Proxy Manager, observa que monto un volumen, /home/carlos/web/public:/site donde residen los ficheros del blog.

tree -L 1 ~/Documentos/proyectos/ebdl/public
/home/carlos/Documentos/proyectos/ebdl/public
├── 404.html
├── android-chrome-192x192.png
├── android-chrome-512x512.png
├── apple-touch-icon.png
├── categories
├── css
├── favicon-16x16.png
├── favicon-32x32.png
├── favicon.ico
├── favicon.png
├── feed_style.xsl
├── images
├── index.html
├── index.xml
├── jetbrains-mono
├── logo.png
├── logo.svg
├── manifest
├── page
├── posts
├── robots.txt
├── search
├── sitemap.xml
├── symbols-nerd-font
└── tags

11 directories, 15 files
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - /home/carlos/docker/npm/data:/data
      - /home/carlos/docker/npm/letsencrypt:/etc/letsencrypt
      - /home/carlos/web/public:/site

Añadiendo el Host

Creamos un nuevo hosts para redirigir las peticiones del dominio seleccionado en Ngnix Proxy Manager al propio servidor de Ngnix Proxy Manager (127.0.0.1)

Nota: En mi caso al utilizar Cloudflare tuve que desactivar Cache Assets y Block Common Exploits para que el blog se visualizara correctamente

Certificado SSL

Elige el certificado de tu dominio, este certificado debes de haberlo creado anteriormente

Configurar Nginx

En la pestaña Advanced añade el siguiente código:

location / {
  root /site/;
}

Recuerda que /site se corresponde con el volumen que montas en el contenedor de Hugo

Al final deberías tener algo parecido a esto

Espero que te haya gustado, pasa un gran día 🐧

Referencia:

https://wallacelabs.tech/posts/static-site-hosting-with-docker-hugo-and-nginx-proxy-manger/


Ingrese la dirección de su instancia