Detalles de uso de Nginx Inicio rápido de Nginx Detalles del archivo de configuración de Nginx

Nginx

Todos los archivos de instalación necesarios para el documento han sido empaquetados,
enlace de descarga : https://pan.baidu.com/s/1yWUDj3lXK9nm-huyzSwu8g
Código de extracción: u7dl
copie este contenido y abra la aplicación de teléfono móvil Baidu Netdisk , la operación es más conveniente --Compartir desde Baidu Netdisk Super Member V3

Uno, introducción a Nginx

Nginx es un servidor proxy inverso y HTTP de alto rendimiento, ocupa poca memoria y tiene una capacidad muy poderosa para manejar alta concurrencia.

Nginx se puede completar, equilibrio de carga, separación dinámica y estática

Algunos de ellos no se pueden cargar debido a violaciones. Se recomienda ver este video para completar los puntos de conocimiento que no se mencionan. Nginx en Silicon Valley explica el portal

1. Equilibrio de carga

Aumente la cantidad de servidores y distribuya las solicitudes a cada servidor en lugar de concentrar las solicitudes en un solo servidor

Inserte la descripción de la imagen aquí

2. Separación de dinámica y estática

Analizar recursos dinámicos y recursos estáticos por diferentes servidores, reduciendo la presión cuando se usa un solo servidor
Inserte la descripción de la imagen aquí

Dos, instalación de Nginx (Linux)

  1. Cargue archivos dependientes de pcre al directorio / usr / src de Linux

Inserte la descripción de la imagen aquí

  1. Ingrese al directorio anterior,cd /usr/src

  2. Descomprima el archivo comprimido pcre,tar -zxvf pcre-8.37.tar.gz

  3. Ingrese al directorio descomprimido,cd pcre-8.37/

  4. Seguido de la implementación ./configure, make && make installpara completar la instalación.

  5. Compruebe si la instalación se ha realizado correctamente.pcre-config --version

Inserte la descripción de la imagen aquí

  1. Instalar dependencias de openssl, zlib, gcc
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
  1. Cargue el paquete de instalación de Nginx en el directorio / usr / src de Linux

Inserte la descripción de la imagen aquí

  1. Ingrese al directorio anterior,cd /usr/src

  2. Descomprima el archivo de instalación de Nginx,tar -zxvf nginx-1.12.2.tar.gz

  3. Ingrese al directorio descomprimido,cd nginx-1.12.2/

  4. Seguido de la implementación ./configure, make && make installpara completar la instalación.

  5. Puerto abierto 80:

(1) firewall-cmd --permanent --add-port=80/tcp, mostrar éxito significa éxito

(2) firewall-cmd --reloadReinicie el firewall para que surta efecto, y mostrar éxito significa éxito

(3 ) firewall-cmd --query-port=80/tcp, mostrar sí significa que el puerto 80 se abrió correctamente

  1. Inicie Nginx cd /usr/local/nginx/sbiny ejecute./nginx

Inserte la descripción de la imagen aquí

  1. Ingrese http: // [dirección IP de Linux]: 80 en la barra de direcciones del navegador (Nginx usa el puerto 80 por defecto)

Inserte la descripción de la imagen aquí

Tres, instrucciones comunes de Nginx

1. Inicie Nginx

Primero cd / usr / local / nginx / sbin, luego ./nginx, o directamente /usr/local/nginx/sbin/nginx

2. Cierre Nginx

Primero cd / usr / local / nginx / sbin, luego ./nginx -s stop, o directamente /usr/local/nginx/sbin/nginx -s stop

3. Implementación en caliente de Nginx

(También puede volver a cargar el archivo de configuración modificado sin reiniciar Nginx)

Primero cd / usr / local / nginx / sbin, luego ./nginx -s recargar, o directamente /usr/local/nginx/sbin/nginx -s reload

Cuatro, archivo de configuración de Nginx

Los archivos de configuración de Nginx se colocan en el directorio / usr / local / nginx / conf /

Inserte la descripción de la imagen aquí

El contenido después de abrir el archivo nginx.conf:

# 第一部分:全局块
worker_processes  1;  # worker进程数,值越大,支持的并发数量越大,尽量与cpu数相同

# 第二部分:events块
events {
    worker_connections  1024;  # 每个worker进程支持的最大连接数默认为1024
}

# 第三部分:http块
http {
	# http全局块
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

	# server块,一般都是对此部分进行配置 (可以有多个server块)
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

Cinco, ejemplo de configuración de Nginx (1)

1. Logra el efecto

Ingrese la dirección www.123.com en el navegador para ir a la página de inicio del servidor tomcat del sistema Linux

2. Análisis de pasos

(1) Instale tomcat en Linux, use el puerto predeterminado 8080

(2) Análisis del proceso de acceso

Inserte la descripción de la imagen aquí

(3) Establezca la correspondencia entre el nombre de dominio y la dirección IP en el archivo de host de Windows

Inserte la descripción de la imagen aquí

(4) En el archivo de configuración de Nginx,vim /usr/local/nginx/conf/nginx.conf

Inserte la descripción de la imagen aquí

(5) Inicie Nginx, abra el navegador para ejecutar, el efecto es como se muestra en la figura

Inserte la descripción de la imagen aquí

Seis, ejemplo de configuración de Nginx (2)

1. Logra el efecto

Modifique el puerto de escucha de Nginx a 9001 y salte a diferentes páginas del servidor de acuerdo con la dirección del navegador

Visite http: // [dirección IP de Linux]: 9001 / edu / Salte a 127.0.0.1:8080
Visite http: // [dirección IP de Linux]: 9001 / vod / Salte a 127.0.0.1:8081

2. Análisis de pasos

(1) Cree dos servidores Tomcat, un puerto 8080 y un puerto 8081 (y abra estos dos puertos)

(2) Cree carpetas edu, vod y archivos a.html en los directorios webapps de los dos servidores Tomcat respectivamente

(3) Configure en el archivo de configuración de Nginx,vim /usr/local/nginx/conf/nginx.conf

Inserte la descripción de la imagen aquí

(4) Abra el navegador para probar

Inserte la descripción de la imagen aquí

3. Descripción de la directiva de ubicación en el archivo de configuración de Nginx

(1) Introducción: utilizado para coincidir con la dirección solicitada

(2) Gramática

Inserte la descripción de la imagen aquí

(3) Comodín

=: Antes del uri sin expresiones regulares, se requiere que la cadena de solicitud coincida estrictamente con el uri. Si la coincidencia es exitosa, deje de
seguir buscando y procese la solicitud inmediatamente

~: Coincide con la dirección de solicitud que contiene uri, distingue entre mayúsculas y minúsculas

~ *: coincide con la dirección de solicitud que contiene uri, no distingue entre mayúsculas y minúsculas

^ ~: Antes del uri sin expresiones regulares, se requiere que el servidor Nginx encuentre la ubicación con el grado de coincidencia más alto entre el uri de identificación y la cadena de solicitud, y luego use esta ubicación para procesar la solicitud inmediatamente, en lugar de usar el uri normal y solicitud en el bloque de ubicación Coincidencia de cadenas

Siete, ejemplo de configuración de Nginx: equilibrio de carga

1. Logra el efecto

Ingrese http: // [dirección IP de Linux] /edu/a.html en la barra de direcciones del navegador y distribuya esta solicitud a dos servidores Tomcat

2. Análisis de pasos

(1) Cree dos servidores Tomcat, un puerto 8080 y un puerto 8081 (y abra estos dos puertos)

(2) Cree la carpeta edu y un archivo.html en el directorio webapps de los dos servidores Tomcat respectivamente

(3) Configuración de equilibrio de carga en el archivo de configuración de Nginx,vim /usr/local/nginx/conf/nginx.conf

upstream myserver {
# 列出所要负载均衡的tomcat服务器
    server 192.168.206.128:8080;
    server 192.168.206.128:8081;
}

    server {
        listen       80;
        server_name  192.168.206.128;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass http://myserver;
        }

(4) Resultado de la operación: ingrese la dirección en la barra de direcciones, y cada actualización irá a otro servidor Tomcat

3. Estrategia de distribución de equilibrio de carga

(1) Sondeo (predeterminado)

Asignar a diferentes servidores uno por uno de acuerdo con la secuencia de tiempo de la solicitud. Si un servidor deja de funcionar, este servidor se eliminará automáticamente

(2) peso

peso representa el peso, el valor predeterminado es 1, cuanto mayor es el peso, más solicitudes se asignan, uso:

Inserte la descripción de la imagen aquí

(3) ip_hash

Cada solicitud se asigna de acuerdo con el hash de la dirección IP a la que se accede, es decir, a qué servidor se accede por una determinada dirección por primera vez, y luego esta solicitud siempre accederá a este servidor, lo que puede resolver el problema de la sesión.

Inserte la descripción de la imagen aquí

(4) justo

La solicitud se asigna de acuerdo con el tiempo de respuesta del servidor, y se le da prioridad al servidor con un tiempo de respuesta corto.

Inserte la descripción de la imagen aquí

Ocho, ejemplo de configuración de Nginx: separación de dinámica y estática

1. Información general

La separación dinámica y estática de Nginx simplemente significa separar las solicitudes dinámicas y estáticas. No puede entenderse simplemente como separar físicamente las páginas dinámicas y estáticas. Estrictamente hablando, las solicitudes dinámicas deben separarse de las solicitudes estáticas, que pueden entenderse como el uso de Nginx para procesar páginas estáticas y Tomcat para procesar páginas dinámicas. Desde la perspectiva de la implementación actual, se puede dividir aproximadamente en dos tipos. Uno es simplemente separar archivos estáticos en un nombre de dominio separado y colocarlos en un servidor separado, que también es la solución principal actual; el otro método es dinámico y archivos estáticos. Mezclados y publicados, separados por Nginx

2. Logra el efecto

Cree una carpeta / data / www / en el directorio raíz de Linux, que almacena el recurso estático a.html, y cree una carpeta / data / www / bajo las aplicaciones web del servidor Tomcat en 8080, que almacena el recurso estático a. html, cuando se ingresa la solicitud de este recurso estático, se accede al recurso estático en el directorio raíz, no al recurso estático en el servidor Tomcat

3. Análisis de pasos

(1) Cree las carpetas y archivos anteriores

(2) Realice la configuración de separación dinámica y estática en el archivo de configuración de Nginx,vim /usr/local/nginx/conf/nginx.conf

server {
    listen       80;
    server_name  192.168.206.128;
    #charset koi8-r;
    #access_log  logs/host.access.log  main;
    location /www/ {
        root /data/;
        index index.html index.htm;
}
}

Nueve, clúster de alta disponibilidad de ejemplo de configuración de Nginx

1. Información general

Cuando el servidor principal de Nginx deja de funcionar, el servidor de reserva se utiliza para garantizar la alta disponibilidad del servicio. La idea es la siguiente:

Inserte la descripción de la imagen aquí

2. Análisis de pasos

(1) Se requieren dos servidores Nginx (es decir, dos máquinas virtuales Linux), las direcciones son 192.168.17.129 y 192.168.17.131 respectivamente

(2) Instale Nginx en dos máquinas virtuales

(3) Instale keepalived en el servidor principal

i. Ingrese al directorio usr,cd /usr/

ii. Entorno de instalación

1. wget http://www.percona.com/redir/downloads/Percona-XtraDB-Cluster/5.5.37-25.10/RPM/rhel6/x86_64/Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm

2. rpm -ivh Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm

iii. Use el comando yum para instalar,yum install keepalived -y

iv. Después de la instalación, cree un directorio keepalived en / etc, que contiene el archivo de configuración keepalived.conf

(4) Elimine el archivo de configuración original,rm -rf /etc/keepalived/keepalived.conf

(5) Reemplace con el nuevo archivo de configuración keepalived.conf, el contenido es el siguiente:

global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   #邮件服务器通知地址(暂不配置,默认即可,默认是当前虚拟机的ip地址)
   smtp_server 192.168.17.129
   #邮件服务器超时时间(暂不配置,默认即可)
   smtp_connect_timeout 30
   #当前虚拟机的IP地址
   router_id 192.168.17.129
}

vrrp_script Monitor_Nginx {
 script "/etc/keepalived/nginx_check.sh"    #检测脚本执行的路径
 interval 2                             #检测脚本执行的间隔
 weight 2                              #检测脚本执行的权重
}

vrrp_instance VI_1 {
    state MASTER       # 标识这个机器是MASTER(主服务器)还是BACKUP(备服务器)
    interface ens33      # 当前机器的网卡名称  
    virtual_router_id 51  # 虚拟路由的编号,主备必须一致
    priority 100         # 主、备机取不同的优先级,主机值较大,备份机值较小
    advert_int 1         # VRRP Multicast广播周期秒数,即每隔一秒检测是否宕机
    authentication {
        auth_type PASS   #(VRRP认证方式)
        auth_pass 1111   #(密码)
    }
    track_script {
		Monitor_Nginx # 调用nginx进程检测脚本
	}
    virtual_ipaddress {
        192.168.17.50  # 给两台Nginx服务器绑定的虚拟ip地址
    }
}

(6) Se agregó un script de detección keepalived,vim /etc/keepalived/nginx_check.sh

#!/bin/bash
if [ "$(ps -ef | grep "nginx: master process" | grep -v grep )" == "" ]
 then
 killall keepalived
fi

(7) Inicie el servicio keepalived,service keepalived start

(8) Instale el servidor de reserva de Nginx y manténgalo conectado en otro sistema Linux, los pasos son los descritos anteriormente, pero la parte roja del contenido anterior debe modificarse en el archivo de configuración de keepalived

3. Resultados de la operación

El navegador ingresa la dirección IP virtual 192.168.17.50 para acceder al servidor principal, mata el proceso Nginx del servidor principal y esta dirección IP virtual accederá al servidor en espera

Diez, análisis del principio de Nginx

Al observar el proceso de Nginx, encontrará dos procesos, trabajador y maestro.

Inserte la descripción de la imagen aquí

El modelo de hilo de trabajo se muestra en la figura:

Inserte la descripción de la imagen aquí

El principio de funcionamiento se muestra en la figura:

Inserte la descripción de la imagen aquí

Los beneficios de utilizar un maestro y varios trabajadores:

  1. Propicio para la implementación en caliente: el trabajador que toma la solicitud ejecutará la tarea, y el resto de los trabajadores inactivos actualizará el archivo de configuración, y la información del archivo de configuración se actualizará automáticamente cuando finalice la tarea del trabajador.

  2. Cada trabajador es un proceso independiente, si uno de los trabajadores tiene un problema, no afectará a los demás trabajadores.

Tres problemas comunes:

  1. ¿Cuántos trabajadores son adecuados?

Respuesta: El número de trabajadores es el mismo que el número de CPU del servidor, lo mejor es modificarlo en el bloque global del archivo de configuración de Nginx.

  1. ¿Cuántas conexiones de un trabajador ocupará una solicitud?

Respuesta:
(1) Si es solo un recurso estático, ocupará 2 conexiones (recibiendo y devolviendo dos conexiones)

(2) Si se utiliza Nginx como servidor proxy para utilizar Tomcat para procesar recursos dinámicos, ocupará 4 conexiones

  1. ¿Cómo calcular el número máximo simultáneo de Nginx?

Respuesta:
(1) Si es solo un recurso estático, el número máximo simultáneo = el número de trabajadores * el número máximo de conexiones por trabajador / 2

(2) Si Nginx se usa como servidor proxy para usar Tomcat para procesar recursos dinámicos, el
número máximo simultáneo = el número de trabajadores * el número máximo de conexiones por trabajador / 4

Supongo que te gusta

Origin blog.csdn.net/weixin_49343190/article/details/112006564
Recomendado
Clasificación