Solo para visitantes de nuestro blog Obtenga 3 meses adicionales gratis + 10% de descuento en el plan trianual YSBLOG10
Agarra el trato

Cómo crear Nginx ¿En Linux Server en 2026? – Guía sencilla

Última actualización: marzo 7, 2026 9 minutos de lectura Sanjeet Chauhan
Crear Nginx en un servidor Linux

Crear Nginx en un servidor Linux, actualiza tus paquetes del sistema operativo, instala Nginx (apt o dnf/yum), permita HTTP/HTTPS en el firewall, inicie y habilite el servicio, cree un bloque de servidor (host virtual) para su dominio, pruebe la configuración y recargue. Nginx.

Opcionalmente, habilite HTTPS con Let's Encrypt de forma gratuita. SSL certificados. Quiero crear Nginx ¿Quieres instalar Linux en un servidor de la forma correcta? Esta guía te explica cómo instalar, configurar y garantizar la seguridad en distribuciones basadas en Ubuntu/Debian y RHEL.

Aprenderás cómo configurar bloques de servidor, PHP-FPM, proxy inverso para aplicaciones, SSL con Vamos a cifrar, ajuste del rendimiento y resolución de problemas: fácil de usar para principiantes pero listo para producción.

Lo que necesita antes de comenzar?

Antes de que instalar Nginx, asegúrese de que se cumplan los siguientes requisitos previos:

  • Un servidor Linux (Ubuntu 22.04/24.04, Debian 12, AlmaLinux/Rocky Linux 9 o CentOS Stream).
  • Acceso root o sudo.
  • Un dominio registrado con DNS Registros A/AAAA que apuntan a la IP de su servidor.
  • Los puertos 80 (HTTP) y 443 (HTTPS) están abiertos en su firewall o grupo de seguridad en la nube.
  • Conocimientos básicos de la línea de comandos y SSH acceder.

Instale Nginx en Ubuntu/Debian

En sistemas basados ​​en Debian, Nginx Está disponible en los repositorios oficiales y se instala en minutos.

Actualizar el sistema operativo e instalar Nginx

sudo apt update && sudo apt -y upgrade
sudo apt -y install nginx

Iniciar y habilitar el servicio

sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx

Permitir Nginx en el cortafuegos UFW

sudo ufw allow 'Nginx Full'
sudo ufw status

Verificar instalación

Visite http://your-domain.com o la IP de su servidor. Debería ver la configuración predeterminada. Nginx pagina de bienvenida.

Instale Nginx en RHEL/CentOS/AlmaLinux/Rocky

Las distribuciones de la familia RHEL normalmente utilizan dnf (o yum) y firewalld.

Instale Nginx del repositorio

sudo dnf -y install epel-release
sudo dnf -y install nginx

Iniciar y habilitar Nginx

sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx

Puertos abiertos en firewalld

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

Consideraciones sobre SELinux

Si se está aplicando SELinux y usted cambia las raíces del documento o los puertos de escucha, configure los contextos y valores booleanos correctos:

# Example: allow Nginx to connect to upstream services
sudo setsebool -P httpd_can_network_connect 1

# Assign correct context to new webroot
sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/example.com(/.*)?"
sudo restorecon -Rv /var/www/example.com

Crea tu primero Nginx Bloque de servidor (host virtual)

Los bloques de servidor (hosts virtuales) permiten alojar varios sitios web en un mismo servidor . A continuación, se muestran ejemplos para sistemas basados ​​en Debian/Ubuntu y RHEL.

Ubuntu/Debian: sitios disponibles y sitios habilitados

sudo mkdir -p /var/www/example.com/html
sudo chown -R $USER:$USER /var/www/example.com
sudo chmod -R 755 /var/www/example.com

cat <<'EOF' | sudo tee /etc/nginx/sites-available/example.com
server {
    listen 80;
    listen [::]:80;
    server_name example.com www.example.com;

    root /var/www/example.com/html;
    index index.html index.htm;

    access_log /var/log/nginx/example_access.log;
    error_log  /var/log/nginx/example_error.log;

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

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

RHEL/AlmaLinux/Rocky: conferencia

sudo mkdir -p /var/www/example.com/html
sudo chown -R nginx:nginx /var/www/example.com
sudo chmod -R 755 /var/www/example.com

cat <<'EOF' | sudo tee /etc/nginx/conf.d/example.com.conf
server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/example.com/html;
    index index.html index.htm;

    access_log /var/log/nginx/example_access.log;
    error_log  /var/log/nginx/example_error.log;

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

sudo nginx -t && sudo systemctl reload nginx

Crea una página de prueba sencilla:

echo "<h1>It works!</h1>" | sudo tee /var/www/example.com/html/index.html

Agregar PHP Apoyo con PHP-FPM

Nginx sirve archivos estáticos y actúa como proxy para solicitudes dinámicas. PHP-FPM.

Instale PHP-FPM

# Ubuntu/Debian
sudo apt -y install php-fpm

# RHEL family
sudo dnf -y install php-fpm

Nginx Bloque de servidor con PHP

server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example.com/html;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ .php$ {
        include snippets/fastcgi-php.conf;      # Debian/Ubuntu path
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;  # adjust PHP version/socket
    }

    location ~* .(jpg|jpeg|png|gif|svg|css|js|ico)$ {
        expires 30d;
        access_log off;
    }
}

Cree un archivo phpinfo() para probar:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/example.com/html/info.php

Habilitar HTTPS con Let's Encrypt (Certbot)

Free SSL/TLS protege a sus usuarios y mejora el SEO. Asegúrese de que su DNS apunta al servidor antes de ejecutar Certbot.

Instalar Certbot y obtener certificados

# Ubuntu/Debian
sudo apt -y install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com

# RHEL family
sudo dnf -y install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com

Certbot edita automáticamente su Nginx configuración, habilita Redirecciones HTTPS y HTTP a HTTPS, y configura la renovación automática.

Usar Nginx como proxy inverso (Node.js, Python, Ruby)

Nginx Destaca como proxy inverso delante de servidores de aplicaciones como Node.js, Gunicorn (Python) o Puma (Ruby).

server {
    listen 80;
    server_name api.example.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # WebSocket support
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Al hacer proxy a HTTPS ascendentes, agregue proxy_ssl_server_name on; y garantizar que los certificados ascendentes se validen correctamente.

Fundamentos del ajuste del rendimiento

Los valores predeterminados predeterminados son conservadores. Ajuste con cuidado y haga pruebas.

  • Trabajadores y conexiones: establecido en nginx.conf.
  • Compresión: Habilitar gzip; considerar Brotli si está disponible.
  • Almacenamiento en caché estático: caché larga para activos inmutables.
  • HTTP/2 y TLS: cifrados modernos, reutilización de sesiones.
  • Keepalive ascendente: Mejorar la eficiencia del proxy inverso.
# /etc/nginx/nginx.conf (excerpt)
worker_processes auto;
events {
    worker_connections 1024;
    multi_accept on;
}
http {
    sendfile on;
    keepalive_timeout 65;
    server_tokens off;

    gzip on;
    gzip_types text/plain text/css application/json application/javascript application/xml+rss;
    gzip_min_length 1024;

    # Example: cache static assets aggressively
    map $sent_http_content_type $expires {
        default                    off;
        ~image/                    30d;
        ~font/                     30d;
        ~text/css                  7d;
        ~application/javascript    7d;
    }
}

Lista de verificación para fortalecer la seguridad

  • Ocultar versión: server_tokens off;
  • HTTPS en todas partes: redirigir HTTP a HTTPS, utilice HSTS si corresponde.
  • Encabezados de seguridad: CSP, Opciones de marco X, Opciones de tipo de contenido X, Política de referencia.
  • Limitación de velocidad: Estrangular a los clientes abusivos.
  • Limite los métodos y el acceso a rutas sensibles.
  • Guardar Nginx y abiertoSSL actualizada.
# Example headers (in server {} or http {})
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;

# Rate limit: 10 requests/second burst 20 per IP
limit_req_zone $binary_remote_addr zone=api_limit:10m rate=10r/s;

server {
    ...
    location /api/ {
        limit_req zone=api_limit burst=20 nodelay;
        proxy_pass http://127.0.0.1:3000;
    }
}

Registros, monitoreo y mantenimiento

  • Registros: /var/log/nginx/access.log y /var/log/nginx/error.log por sitio si está configurado.
  • Rotar registros: Nginx instala reglas de logrotate por defecto; verifique en /etc/logrotate.d/nginx.
  • Monitor: use nginx -V Para obtener información sobre la construcción, systemctl status nginx para la salud del servicio y herramientas como Netdata, Prometheus o Uptime Kuma.
# Quick log tail
sudo tail -f /var/log/nginx/access.log /var/log/nginx/error.log

Recarga sin tiempo de inactividad y comandos útiles

  • Configuración de prueba: sudo nginx -t
  • Recargar (sin tiempo de inactividad): sudo systemctl reload nginx or sudo nginx -s reload
  • reiniciar: sudo systemctl restart nginx
  • Ver sitios habilitados (Debian): ls /etc/nginx/sites-enabled
  • Comprobar puertos abiertos: ss -tulpn | grep :80|:443

Solución de problemas comunes Nginx Errores

  • 403 Prohibido: Permisos o propiedad incorrectos. Asegúrese de que el directorio raíz web sea legible por www-data (Debian/Ubuntu) o nginx (RHEL).
  • 404 No encontrado: Mal root camino o falta try_files. Confirme que el archivo existe en el directorio web definido.
  • 502 Bad Gateway: PHP-FPM o la aplicación ascendente están caídos o el socket/puerto es incorrecto. Verificar PHP-Servicio FPM y fastcgi_pass camino, o aguas arriba proxy_pass objetivo.
  • 413 Entidad de solicitud demasiado grande: incrementar client_max_body_size en el servidor o bloquear http y recargar.
  • SSL Errores: garantizar DNS es correcto, los puertos 80/443 están abiertos y la renovación de Certbot funciona con sudo certbot renew --dry-run.

Cuándo elegir hosting administrado

Si prefieres no hacerlo manage parches, SSL renovaciones, monitoreo y escalabilidad por su cuenta, considere una managed VPS o servidor dedicado. En YouStable, proporcionamos rendimiento optimizado Nginx Plataformas, migración gratuita, refuerzo de seguridad proactivo y soporte experto las 24 horas del día, los 7 días de la semana, para que pueda concentrarse en su aplicación mientras nosotros nos encargamos del tiempo de actividad y la optimización.

FAQ’s

1. Es Nginx mejor que Apache ¿Para sitios con mucho tráfico?

Para archivos estáticos y conexiones concurrentes, NginxSu arquitectura basada en eventos suele ser más eficiente. Apache es versátil y rico en módulos. Muchos stacks de producción utilizan Nginx como un proxy inverso delante de Apache o servidores de aplicaciones para equilibrar las fortalezas.

2. ¿Cómo creo varios sitios (hosts virtuales) en Nginx?

Cree un bloque de servidor independiente para cada dominio. En Ubuntu/Debian, coloque los archivos en /etc/nginx/sites-available y enlace simbólico a sites-enabledEn las distribuciones basadas en RHEL, agregue un .conf archivar bajo /etc/nginx/conf.d. Prueba con nginx -t y recargar.

3. ¿Qué puertos deberían estar abiertos para? Nginx?

Abra TCP 80 para HTTP y 443 para HTTPS. En entornos de nube (AWS, GCP, Azure), permítalos en grupos de seguridad o reglas de firewall. En el servidor, use UFW o firewalld para permitir el tráfico web.

4. ¿Cómo renuevo automáticamente los certificados Let's Encrypt?

Certbot instala un temporizador systemd o una tarea cron para la renovación automática. Verificar con sudo systemctl list-timers | grep certbot o ejecutar un ensayo: sudo certbot renew --dry-runLos certificados se renuevan aproximadamente 30 días antes de su vencimiento.

5. Can Nginx ¿Funcionar como balanceador de carga?

Sí. Define un upstream Bloquear con múltiples servidores backend y hacer referencia a él a través de proxy_passUtilice métodos de equilibrio de carga como round-robin (predeterminado), least_conn, o ip_hashy agregar controles de salud con max_fails y fail_timeout.

Conclusión

Ahora puedes crear Nginx en un servidor Linux de extremo a extremo: instalar, configurar bloques de servidor, proteger con HTTPS, aplicaciones de proxy inverso, optimizar y mantenerlo reforzado. Siga los pasos, pruebe con nginx -ty recarga de forma segura. Para una pila optimizada para el rendimiento y sin preocupaciones, YouStable, managed alojamiento Puede acelerar su implementación.

Deja Tu Comentario

Su dirección de correo electrónico no será publicada. Las areas obligatorias están marcadas como requeridas *

Ir al Inicio