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..
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á.
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.
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 |
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..
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;
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.
"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.
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
y $ 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.