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:
- Nginx sirviendo tus webs (estáticas o dinámicas).
- Cloudflared Tunnel exponiendo tu Mac a Internet con HTTPS sin abrir puertos.
- 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:
- Cambia los nameservers a los de Cloudflare.
- 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
- Crear carpetas para tus webs en
/opt/homebrew/var/www/. - Crear archivos de configuración Nginx para cada dominio/subdominio.
- Editar
config.ymlde Cloudflared para mapear cada hostname. - Reiniciar Nginx y Cloudflared.