Nginx en mac

Nginx (Homebrew)

  • Sí está corriendo:

Código

nginx: master process /opt/homebrew/opt/nginx/bin/nginx -g daemon off;
nginx: worker process
  • Escucha en el puerto 8080:

Código

TCP *:http-alt (LISTEN)

📁 Dónde pone Nginx las webs cuando lo instalas con Homebrew

Cuando instalas Nginx con Homebrew, la ruta por defecto NO es /var/www, sino:

Document root (carpeta pública):

Código

/opt/homebrew/var/www

Ahí es donde debes poner tus archivos index.html, proyectos, etc.

Archivo de configuración principal:

Código

/opt/homebrew/etc/nginx/nginx.conf

Logs:

Código

/opt/homebrew/var/log/nginx/

Ruta de configuración de servidores virtuales (si la creas tú):

Homebrew no crea sites-available ni sites-enabled, pero puedes hacerlo:

Código

/opt/homebrew/etc/nginx/sites-available
/opt/homebrew/etc/nginx/sites-enabled

Y luego incluirlas en nginx.conf:

Código

include /opt/homebrew/etc/nginx/sites-enabled/*;

🌐 Cómo acceder a tu web ahora mismo

Como Nginx está escuchando en 8080, abre:

Código

http://localhost:8080

Si pones un index.html en /opt/homebrew/var/www, lo verás ahí.

🛠️ Cómo gestionar Nginx (Homebrew)

Parar Nginx

bash

brew services stop nginx

Arrancar Nginx

bash

brew services start nginx

Reiniciar (cuando cambias config)

bash

brew services restart nginx

🔄 Si quieres que Nginx escuche en el puerto 80

Edita:

Código

/opt/homebrew/etc/nginx/nginx.conf

Busca la línea:

Código

listen 8080;

Y cámbiala por:

Código

listen 80;

Luego:

bash

sudo brew services restart nginx

⚠️ Necesitarás sudo porque el puerto 80 es privilegiado.

🧭 Qué te recomiendo según tu uso

  • Si solo quieres un servidor local para desarrollo → Nginx en 8080 está perfecto.
  • Si quieres simular un entorno real → cámbialo a 80.
  • Si usas Docker con puertos 80/443 → mejor dejar Nginx apagado o moverlo a 8080 para evitar conflictos.

Cloudflared y Namecheap

Tu Mac‑mini puede servir perfectamente como servidor doméstico con Nginx + Cloudflared + HTTPS usando tu dominio hostnova.info. Lo que necesitas es unir tres piezas:

  1. Nginx sirviendo tus webs (estáticas o dinámicas).
  2. Cloudflared Tunnel exponiendo tu Mac a Internet con HTTPS sin abrir puertos.
  3. Namecheap apuntando tu dominio a Cloudflare (CNAME).

A partir de ahí, puedes servir cualquier web desde tu Mac sin preocuparte por puertos, firewalls o router.

🌐 1. Cómo funciona tu arquitectura (muy importante entenderlo)

Tu Mac‑mini NO necesita escuchar en el puerto 80 ni 443 para tener HTTPS público.

Cloudflared hace esto:

  • Cloudflare recibe la petición HTTPS →
  • La envía por el túnel seguro a tu Mac →
  • Cloudflared la entrega a Nginx en el puerto que tú quieras (8080).

Esto significa:

✔ Puedes dejar Nginx en el puerto 8080

✔ Tu web será HTTPS en Internet igualmente

✔ No necesitas abrir puertos en tu router

✔ No necesitas certificados SSL en tu Mac

Cloudflare se encarga de todo.

🗂️ 2. Dónde poner tus webs en Nginx (Homebrew)

Tu instalación de Nginx usa estas rutas:

  • Document root por defecto: /opt/homebrew/var/www
  • Config principal: /opt/homebrew/etc/nginx/nginx.conf
  • Logs: /opt/homebrew/var/log/nginx/

Puedes crear tus webs así:

Código

/opt/homebrew/var/www/misitio1
/opt/homebrew/var/www/misitio2
/opt/homebrew/var/www/api-node

🧩 3. Configurar Nginx para servir webs

Ejemplo 1: Web estática

Archivo: /opt/homebrew/etc/nginx/sites-enabled/hostnova.info.conf

Código

server {
    listen 8080;
    server_name hostnova.info;

    root /opt/homebrew/var/www/hostnova;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

Ejemplo 2: Web dinámica con Node.js

Tu app Node escucha en localhost:3000.

Código

server {
    listen 8080;
    server_name api.hostnova.info;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Ejemplo 3: Web dinámica con Python (Flask, FastAPI, Django)

Tu app escucha en localhost:8000.

Código

server {
    listen 8080;
    server_name python.hostnova.info;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

🔐 4. Configurar Cloudflared Tunnel para exponer tus webs

Asumiendo que ya creaste un túnel:

Código

cloudflared tunnel create macmini

Ahora editas la configuración:

Archivo: ~/.cloudflared/config.yml

Ejemplo con 3 webs:

Código

tunnel: macmini
credentials-file: /Users/davidsanchezrico/.cloudflared/macmini.json

ingress:
  - hostname: hostnova.info
    service: http://localhost:8080

  - hostname: api.hostnova.info
    service: http://localhost:8080

  - hostname: python.hostnova.info
    service: http://localhost:8080

  - service: http_status:404

Luego arrancas:

Código

cloudflared tunnel run macmini

🏷️ 5. Configurar Namecheap para usar Cloudflare

En Namecheap:

  1. Cambia los nameservers a los de Cloudflare.
  2. En Cloudflare → DNS:

Crea un CNAME:

Código

hostnova.info → <UUID-del-túnel>.cfargotunnel.com

Y para subdominios:

Código

api → <UUID-del-túnel>.cfargotunnel.com
python → <UUID-del-túnel>.cfargotunnel.com

Con el proxy naranja activado.

🔒 6. ¿HTTPS? Sí, automáticamente

Cloudflare te da:

  • Certificado SSL válido
  • HTTPS completo
  • HTTP/2 y HTTP/3
  • Firewall
  • DDoS protection

Tu Mac solo sirve HTTP local en 8080.

🧭 7. Qué te recomiendo hacer ahora

  1. Crear carpetas para tus webs en /opt/homebrew/var/www/.
  2. Crear archivos de configuración Nginx para cada dominio/subdominio.
  3. Editar config.yml de Cloudflared para mapear cada hostname.
  4. Reiniciar Nginx y Cloudflared.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *