Cómo configurar el proxy inverso nginx para una conmutación por error instantánea del servidor
proxy_temp_path /data0/proxy_temp_dir;
# Establezca el nombre del área de caché web en cache_one y la memoria El tamaño del espacio de caché es de 200 MB, el contenido al que no se ha accedido dentro de 1 día se borra automáticamente y el espacio de caché del disco duro es de 30 GB.
proxy_cache_path /data0/proxy_cache_dirlevels=1:2keys_zone=cache_one:200m inactive=1d max_size=30g;
#poll_server, el peso es el peso del servidor, que es proporcional al frecuencia de acceso max_fails max_timeout, tiempo de espera de escucha del agente del servidor fail_timeout
Servidor backend ascendente {
servidor 192.168.203.45:80 peso=1 max_fails=2 fail_timeout=30s;
}
servidor
{
escucha 80;
nombre_servidor www.tudominio.com 192.168.203.42;
index index.html index.htm;
raíz /data0/htdocs/www;
ubicación /
{
# Si el servidor devuelve errores como 502, 504, tiempo de espera de ejecución, etc., automáticamente reenviará la solicitud a otro servidor en el grupo de equilibrio de carga ascendente para lograr la conmutación por error.
proxy_next_upstream http_502 http_504 tiempo de espera de error invalid_header;
proxy_cache cache_one;
#Establecer diferentes tiempos de caché para diferentes códigos de estado HTTP
#Establecer diferentes tiempos de caché para diferentes códigos de estado HTTP
proxy_cache_valid 200 304 12h;
# Combine el nombre de dominio, el URI y los parámetros para formar el valor clave para el almacenamiento en caché web, Nginx se basa en el valor hash de la clave value Almacena el contenido de la caché en el directorio de caché de segundo nivel
proxy_cache_key $host$uri$is_args$ args;
proxy_set_header Host $host;
proxy_set_header X- Reenviado -Para $remote_addr;
proxy_pass http://backend_server;
expire 1d;
}
}
Parámetros de configuración del proxy inverso de Nginx:
1.proxy_set_header (establecer encabezado de proxy)
2.proxy_hide_header (ocultar encabezado de proxy)
3.proxy_set_header ( Establecer encabezado de proxy)
2.proxy_hide_header (ocultar encabezado de proxy)
3.proxy_header (ocultar encabezado)
3. >
3. proxy_header (ocultar encabezado)
4. p>3. proxy_pass_header (pasar encabezado)
4.proxy_connect_timeout (tiempo de espera de conexión de proxy)
5. proxy_send_timeout (tiempo de espera de envío de proxy)
6. proxy_read_ timeout (tiempo de espera de recepción de proxy)
7. proxy_temp_file_write_size (establecer el tamaño de la carpeta de caché)
8 . proxy_buffer_size (tamaño del búfer de proxy)
9. proxy_buffers (búfer de proxy)
10. proxy_busy_buffers_size (tamaño del búfer bajo carga alta)
11 .proxy_ignore_client_abort (el agente no está permitido cerrar activamente la conexión)
La siguiente es una introducción paso a paso a los cinco métodos de reenvío y distribución de solicitudes de servicio ascendentes basados en el proxy inverso de Nginx, y la configuración completa del método real. entorno de producción. Método, configuración integral del entorno de generación real Para facilitar la explicación del problema, la aplicación del entorno de generación real del proxy inverso nginx se explica de diferentes maneras. Consulte la parte inicial del artículo "Cómo". configure el proxy inverso nginx para lograr una conmutación por error instantánea del servidor". configuración proxy.conf.
nginx upstream actualmente admite cinco métodos de asignación
1. Sondeo (predeterminado)
Cada solicitud se asignará a diferentes backends uno por uno en orden cronológico. , si el servidor backend deja de funcionar, se puede eliminar automáticamente.
2. Peso
Especifique la tasa de sondeo. El peso es proporcional a la tasa de acceso y se utiliza cuando el rendimiento del servidor back-end está desequilibrado.
3. ip_hash
Asigne cada solicitud de acuerdo con el resultado hash de la IP a la que se accede, de modo que cada visitante tenga un acceso fijo al servidor back-end, que puede resolver la sesión. problema.
bakerend ascendente {
ip_hash;
servidor 192.168.203.14:88;
servidor 192.168.203.15:80;
}
3.
4. Justo (tercero)
p>Distribuir las solicitudes según el tiempo de respuesta del servidor back-end. , con un corto tiempo de respuesta Se priorizarán las solicitudes.
Backend ascendente{
Servidor 192.168.203.14:88;
Servidor 192.168.203.15:80;
Regular;
p>
}.
5. url_hash (tercero)
Distribuya las solicitudes según el resultado hash de la URL a la que se accede, de modo que cada URL apunte al mismo servidor back-end. hecho en el servidor back-end. Más eficiente con el caché.
Ejemplo: agregar una declaración hash en sentido ascendente. Otros parámetros, como los pesos, no se pueden escribir en la declaración del servidor. hash_method es el algoritmo hash utilizado.
Backend en sentido ascendente {
< p. >servidor squid1:3128;servidor squid2:3128;
hash $request_uri;
hash_method crc32;
} p >
bakend ascendente {
#Defina la IP y el estado del dispositivo de equilibrio de carga
ip_hash;
servidor 127.0.0.0.1: 9090 inactivo;
servidor 127.0.0.1:8080 peso=2;
servidor 127.0.0.1:6060;
servidor 127.0.0.1:7070 respaldo;
p>}
En el servidor que necesita usar equilibrio de carga, agregue:
proxy_pass bakend;
El estado de cada dispositivo está configurado en:
1. Abajo significa que el servidor superior no participará en la carga temporalmente
2. El peso predeterminado es 1. Cuanto mayor sea el peso, mayor será el peso. de la carga.
3. max_fails: el número de errores de solicitud permitidos, el valor predeterminado es 1. Cuando se excede el número máximo de veces, se devolverá el mensaje de error definido por el módulo proxy_next_upstream
4.fail_timeout: max_fails tiempo de pausa después del fallo.
5. Copia de seguridad: todas las demás máquinas que no son de respaldo solicitarán la máquina de respaldo cuando estén inactivas u ocupadas. Por lo tanto, esta máquina tiene un estrés mínimo.
nginx admite la configuración del equilibrio de carga para múltiples grupos al mismo tiempo para servidores no utilizados.
client_body_in_file_only configura client_body_in_file_only para registrar los datos publicados por el cliente en un archivo para depuración
client_body_temp_path establece el directorio del archivo de grabación, que se puede configurar en un directorio de tercer nivel en la mayoría
ubicación coincide con la URL. Puede redirigir o crear un nuevo equilibrio de carga de proxy