Trabajando con Nginx

Los primeros dos artículos de la serie brindaron una descripción general y también hablaron sobre los módulos esenciales para Nginx. Este tutorial lo ayudará a comenzar a usar Nginx al guiarlo a través de algunas técnicas básicas para administrar archivos de configuración y configurar parámetros básicos en las configuraciones.. 

División de archivos de configuración

Después de instalar Nginx, el / etc / nginx / El directorio tendrá el siguiente contenido:

  • nginx.conf: El archivo de configuración principal.
  • conf.d: se utiliza para cosas como la carga de módulos y para cosas que no son específicas de un solo host virtual.
  • sitios-disponibles: almacenamiento todos Configuraciones de host virtual, incluso si actualmente no están habilitadas.
  • sitios habilitados: todos los sitios que están habilitados (enlaces simbólicos a archivos en la carpeta de sitios disponibles).
  • mime.types: asigna extensiones de nombre de archivo a tipos MIME de respuestas.

Esta sitios- * flujo de trabajo de la carpeta Hace las cosas un poco más organizadas. En el caso de varios sitios web, es decir, hosts virtuales, cada host virtual obtiene su propio archivo de configuración. sitios-disponibles puede contener todos los archivos de configuración del host virtual, mientras que los que están habilitados se pueden enlazar desde sitios habilitados.

Esta configuración es la predeterminada cuando instala Nginx. Puedes ver como incluir ha permitido la inclusión de archivos de configuración externos. Si hay errores en cualquiera de estos archivos incluidos, Nginx no se cargará.

Hosts virtuales múltiples

Nginx, como cualquier otro servidor web, le permite configurar más de un host virtual.

# sites-enabled / example.com.conf server listen 80; # dirección y puerto, o solo dirección o solo puerto. server_name example.com www.example.com; # nombres de un servidor virtual. Puede usar comodines y expresiones regulares. access_log /var/log/nginx/example_com_access.log; error_log /var/log/nginx/example_com_error.log; # establece la configuración en función de una solicitud URI. location / root /var/www/www.example.com; index index.html index.htm; 

Esto se hace a través del bloque del servidor. La directiva de escucha describe el puerto en el que el servidor web está escuchando y la directiva nombre_servidor enumera todos los nombres de servidor. Dentro de la ubicación, puede definir cómo funciona el host virtual.

Recarga de Nginx

El ID de proceso del proceso Nginx maestro se escribe en un archivo como se define en la directiva pid, por ejemplo. pid /var/run/nginx.pid;. Este proceso maestro soporta las siguientes señales:

PLAZO, INT Cierre rápido
DEJAR Cierre agraciado
HUP Volver a cargar config + Trabajadores apagado correcto + reinicio
USR1 Volver a abrir archivos de registro
USR2 Actualizar ejecutable al vuelo
CABRESTANTE Cierre agraciado de procesos de trabajo

Para recargar Nginx, puedes ejecutar matar -HUP

Los procesos individuales del trabajador también pueden ser controlados a través de señales..

PLAZO, INT Cierre rápido
DEJAR Cierre agraciado
USR1 Volver a abrir archivos de registro
CABRESTANTE terminación anormal para la depuración
* requiere puntos de depuración

Nginx en modo de depuración

Para ello, deberá compilar Nginx con el indicador de depuración (--con-depuración). Después de hacer eso, es posible depurar conexiones de direcciones específicas con el conexión de depuración directiva.

error_log / var / log / nginx / errors; eventos debug_connection 192.168.1.18; 

Cuando solicite ayuda con Nginx, asegúrese de compartir la salida de nginx -V, Configuración completa y el registro de depuración..

404 y otras páginas de error

Esto se logra con la ayuda de un error_page directiva. Define el recurso que se mostrará para el error..

# 1 error_page 404 /404.html; error_page 500 502 503 504 /50x.html; # 2 error_page 404 = 200 /empty.gif; # cambie el código de respuesta a otro usando el "= response" error_page 404 = 301 http://example.com/notfound.html; # use redirects para el procesamiento de errores # 3 # el procesamiento de errores con una ubicación con el nombre / error_page 404 = @fallback;  location @fallback proxy_pass http: // backend; 

También hay una directiva llamada recursive_error_pages lo que permite hacer varias redirecciones utilizando la directiva error_page. Por ejemplo:

error_page 400 404 /404.html; recursive_error_pages en; location ~ * ^ / (404 \ .html | 500 \ .html | 503 \ .html) $ log_not_found off; # Deshabilita el registro de errores sobre archivos no encontrados. error_page 404 = @default;  location @default log_not_found on; root / var / www / default; 

Directorio de auto-indexación

Una solicitud donde no se encuentra el archivo de índice se enruta a este módulo (ngx_http_autoindex_module). [Ejemplo: red local compartida]

location / root / var / www / localdropbox; autoindex en # Habilita o deshabilita la salida del listado de directorios. autoindex_exact_size off; # Tamaño exacto del archivo vs redondeo a KB, MB, GB más cercano. autoindex_format html; # formato de un listado de directorios. XML, JSON, JSONP posible. autoindex_localtime en; # local TZ vs UTC.  

Tamaño de las cargas de archivos

"La entidad de solicitud es demasiado grande" (413) es un mensaje de error común cuando el usuario intenta cargar un archivo. Este tamaño de archivo está controlado por una variable de configuración Nginx:

variable client_max_body_size 10M; # M significa megabytes.

Esto establece el tamaño máximo del cuerpo de la solicitud del cliente, especificado en el encabezado de solicitud "Content-Length". Para recibir comentarios de los usuarios sobre estas subidas, también puede utilizar el módulo nginx-upload-progress. Debe adjuntar un X-Progress-ID, que ayuda a identificar de manera única el archivo que se está cargando.

Galletas

Nginx tiene una funcionalidad muy útil y ingeniosa de servir cookies para identificar a los usuarios finales. En una situación en la que no desea emplear analíticas externas, el ngx_http_userid_module El módulo se puede completar sirviendo cookies..

ID de usuario en userid_name uid; userid_domain example.com; userid_path /; userid_expires 365d; userid_p3p 'policyref = "/ w3c / p3p.xml", CP = "CUR ADM NUESTRO NOR STA NID"';

Al habilitar este módulo, las variables $ uid_reset$ uid_got$ uid_set volverse disponible. Esto puede ayudarte a escribir reglas de reescritura aún más complejas..

Estos pasos definitivamente deberían ayudarle a comenzar su camino hacia el uso de Nginx de manera más productiva. 

Recursos adicionales

  1. Cómo nginx procesa una solicitud
  2. Depuración de nginx