Artículos de configuración del servidor Nginx

La última vez que se conecta el libro, ya tenemos un concepto general del servidor Nginx, y este artículo hablará sobre la configuración común del servidor Nginx.

(1) Configuración de host virtual

¿Qué es un host virtual?
Host virtual: el mismo servidor nginx puede admitir el funcionamiento de varios sitios web. Los hosts virtuales son independientes entre sí y tienen funciones completas.
En pocas palabras, cuando ingresa diferentes nombres de dominio y los reenvía al servicio correspondiente a través de diferentes configuraciones de host del mismo servidor Nginx, estos múltiples servidores correspondientes se convierten en hosts virtuales.
Se configuran múltiples servidores bajo un bloque de configuración http, que realiza la configuración de múltiples hosts virtuales.

http {
    
    
    # 对应虚拟主机的配置
    server{
    
    
       # 监听端口
       listen       80;
       # 监听域名
       server_name  localhost;
       # 定位出路径或文件地址
       location / {
    
    
             # 相对路径
       		 root   html;
       		 # 默认跳转的首页地址
             index  index.html index.htm;
       }
    }
    
    server{
    
    
    
    }
}

(2) Configuración de registro

Como todos sabemos, en un proyecto, el módulo de registro es fundamental. Un módulo de registro excelente puede ahorrar mucho tiempo en el mantenimiento futuro. Luego, eche un vistazo a la configuración relevante del módulo de registro de Nginx.
A través del módulo de registro de Nginx, puede obtener información de la dirección del usuario, fuente de salto, terminal y volumen de visitas de URL, etc.

#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
#                  '$status $body_bytes_sent "$http_referer" '
#                  '"$http_user_agent" "$http_x_forwarded_for"';

# 配置日志文件地址  声明日志格式 
#access_log  logs/access.log  main;

Lo anterior es su
demostración de registro de plantilla

192.168.1.11 - - [04/Mar/2020:13:03:39 +0800] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.100 Safari/537.36"

Podemos utilizar la siguiente tabla para obtener sus detalles específicos.
Nombre del módulo y uso relacionado

(3) Configuración de proxy inverso

Configure este módulo, necesita tener otro servidor, generalmente usamos el servidor Tomcat.
Agregue los siguientes elementos de configuración en nuestro bloque de configuración server_est;

http {
    
    
    # 对应虚拟主机的配置
    server{
    
    
       # 监听端口
       listen       80;
       # 监听域名
       server_name  localhost;
       # 定位出路径或文件地址
       location / {
    
    
             # 相对路径
       		 root   html;
       		 # 默认跳转的首页地址
             index  index.html index.htm;
       }
    }
    
    server_test{
    
    
        # 监听端口
           listen       80;
           # 监听域名
           server_name  my123.com;
           # 定位出路径或文件地址
           # location / {
    
    
                 # 相对路径
       		    #  root   my123;
       		     # 默认跳转的首页地址
                #  index  index.html;
      #  }
       location / {
    
    
            proxy_pass  http://127.0.0.1:8080;
        }
    }
}

Puedes ver que reemplazamos la ubicación del artículo anterior con la IP del servidor que queremos proxy.Cuando el cliente acceda al servidor Nginx con el nombre de dominio correspondiente, será reenviado al servicio de IP que configuramos.
Si queremos proxy múltiples servidores tomcat, podemos

location ~ /tomcat1/ {
    
    
            proxy_pass  http://127.0.0.1:8080;
        }

        location ~ /tomcat2/ {
    
    
            proxy_pass  http://127.0.0.1:8081;
        }

En este caso, cuando agregamos tomcat1 o 2 al acceder al nombre de dominio, podemos acceder a diferentes servidores respectivamente.

(4) Equilibrio de carga

Con el avance y desarrollo de la tecnología de red actual, que enfrenta una gran cantidad de visitas, a menudo es imposible que un servidor lo maneje, por lo que aparece una arquitectura distribuida. El llamado distribuido es aumentar la solicitud de procesamiento del servidor B original a B1, B2, B3 o más. Deje que los tres servidores compartan la presión. La operación de compartir la presión está equilibrando la carga. El método de equilibrio de carga más común es el round-robin. En términos sencillos, la primera solicitud va al servidor B1, la segunda solicitud va al servidor B2 y la tercera solicitud al servidor B3, y luego el ciclo continúa. Sin embargo, los atributos de hardware entre servidores no pueden ser exactamente iguales, lo que da como resultado que su capacidad y velocidad para procesar solicitudes sean diferentes, por lo que, en general, también usaremos el método round robin ponderado. La configuración específica es la siguiente:

  upstream myserver{
    
    
        # server列表的地址和端口
        server 192.168.1.20:8080 weight=2;
        server 192.168.1.20:8081 weight=1;
    }

De acuerdo con el valor de peso que configuramos más adelante, la solicitud se enviará al servidor correspondiente de manera uniforme, pero cuando solicitamos acceso, es imposible solicitar una sola vez. Por lo general, inicie sesión primero y luego envíe una segunda solicitud para manejar el negocio, pero en este momento B1 procesa la solicitud de inicio de sesión, pero la solicitud para el procesamiento comercial se realiza en B2, lo que obviamente es inapropiado, por lo que también debemos configurar un ip_hash; Palabra clave para hacer que la misma ip llegue al mismo servidor.

  upstream myserver{
    
    
        # server列表的地址和端口
        server 192.168.1.20:8080 weight=2;
        server 192.168.1.20:8081 weight=1;
        ip_hash;
    }

(5) Separación dinámica y estática

La separación dinámica y estática mencionada aquí no significa la separación física de recursos dinámicos y recursos estáticos, sino la separación de solicitudes en solicitudes dinámicas como jsp, etc. y solicitudes estáticas como imágenes, etc. La ventaja de esto es que el servidor final puede manejar completamente las solicitudes dinámicas.
Configurar directamente:

# 动态资源配置
location ~ .*.jsp$ {
    
    
    proxy_pass http://myserver;
}       

# 静态资源配置
location ~ .*\.(gif|jpg|png|css)$ {
    
    
    root /usr/local/nginx/image;
    # 在浏览器端使用缓存  设置过期时间
    expires 3d;
}

(6) reescritura de URL

Procesamiento estandarizado de urls, redireccionamientos antiguos y nuevos al cambiar nombres de dominio, algunos ajustes de parámetros adicionales, etc.

server{
    
    
    listen 80;
    server_name my123.com;
    rewrite ^/(.*) http://www.my123.com/$1 permanent;
}

Al visitar my123.com, la barra de direcciones se convertirá en www.my123.com

Por el momento, compartiré mucho sobre el contenido relacionado con la configuración de Nginx. De hecho, el nivel del autor es limitado, pero el conocimiento relevante se registra como un registro y luego se comparte con todos. Espero que te ayude.

Supongo que te gusta

Origin blog.csdn.net/qq_42673041/article/details/113781636
Recomendado
Clasificación