530 words
3 minutes
1.5 Apunte Mejorado Nginx Y Recursos Http Https

03/Sep/2025

Nginx y su configuración básica#

Nginx es un servidor web muy utilizado por su rendimiento, bajo consumo de recursos y capacidad de manejar gran cantidad de peticiones concurrentes. Puede actuar como:

  • Servidor web (sirviendo archivos estáticos).
  • Proxy inverso.
  • Balanceador de carga.
  • Servidor de correo.

La configuración de Nginx se hace en un archivo principal (normalmente en /etc/nginx/nginx.conf) y se estructura en bloques.

Bloques principales:#

user nobody; # Usuario con el que se ejecutan los procesos (mejor usar un usuario limitado, no root)
worker_processes 4; # Número de procesos de trabajo según los núcleos del servidor
server {
listen 80; # Puerto en el que escucha (HTTP estándar)
location / {
root /var/www/html; # Directorio donde están los archivos
index index.html; # Archivo por defecto
}
}
  • server: Define un bloque de servidor virtual.
  • listen: Puerto de escucha (ejemplo: 80 para HTTP, 443 para HTTPS).
  • location: Define cómo responder a diferentes rutas o recursos.

HTTP y HTTPS#

  • HTTP (Hypertext Transfer Protocol) es el protocolo de comunicación básico entre cliente (navegador) y servidor.
  • HTTPS añade una capa de cifrado SSL/TLS, garantizando seguridad en la transmisión de datos.

La “S” en HTTPS significa Secure, es decir, que la comunicación está encriptada entre cliente y servidor.

Puertos comunes:#

  • 80 → HTTP
  • 443 → HTTPS
  • 8080 → Alternativo para HTTP
  • 8443 → Alternativo para HTTPS (En muchos servidores, se configuran redirecciones: 80 → 8080 y 443 → 8443)

Métodos HTTP principales#

Cuando un cliente hace una petición, el servidor responde según el método utilizado:

  • GET → Solicitar un recurso (ej: página web).
  • POST → Enviar datos al servidor (ej: formularios).
  • PUT → Subir o actualizar un recurso (ej: archivo).
  • DELETE → Eliminar un recurso.
  • OPTIONS → Preguntar qué métodos admite un recurso.
  • HEAD → Solicitar solo encabezados de respuesta (ej: para caché o validación).
  • TRACE → Usado para pruebas de depuración (poco común, riesgo de seguridad).

Herramientas de prueba y monitoreo#

  • curl: Cliente de línea de comandos para hacer peticiones HTTP. Ejemplo:

    curl -v https://ejemplo.com
    • * → Lo que envía curl
    • > → Lo que se manda al servidor (petición HTTP)
    • < → Lo que responde el servidor
  • Comandos para monitoreo en Linux:

    Terminal window
    ps -a | grep nginx # Ver procesos de Nginx activos
    netstat -na | grep 80 # Ver si el puerto 80 está en uso
    netstat -na | grep 443 # Ver si el puerto 443 está en uso
  • Logs de Nginx:

    • access.log → Registra todas las peticiones de clientes
    • error.log → Registra errores y problemas del servidor

Seguridad y buenas prácticas#

  • No ejecutar Nginx como root, usar un usuario restringido (ej: nobody, www-data).
  • Redirigir tráfico de puertos estándar (80, 443) a puertos altos (8080, 8443) mediante un proxy inverso o firewall.
  • Revisar los logs en tiempo real para detectar ataques o fallos.
  • Configurar HTTPS con certificados válidos (ej. Let’s Encrypt).

Glosario de términos#

  • Nginx: Servidor web y proxy inverso, rápido y eficiente.
  • Archivo de configuración: Documento en el que se definen reglas para el servidor (puertos, rutas, seguridad).
  • worker_processes: Número de procesos de trabajo de Nginx, suele depender de los núcleos de CPU.
  • Location: Bloque de configuración que define cómo responder a ciertas rutas (ej. /, /images).
  • curl: Herramienta de línea de comandos para probar peticiones HTTP/HTTPS.
  • netstat: Utilidad para ver puertos y conexiones activas en un sistema.
  • SSL/TLS: Protocolos de cifrado que aseguran la comunicación entre cliente y servidor.
  • Proxy inverso: Servidor que recibe las peticiones de los clientes y las redirige a otros servidores internos.
  • Logs: Archivos donde se registran eventos, accesos y errores.