Ubicación de reglas detalladas y relaciones de prioridad de la ubicación de niginx y casos de prueba

1. Introducción

En la configuración del servidor de nginx, un servidor puede tener varias ubicaciones y usar reglas de coincidencia para hacer coincidir varias URL de ruta de solicitud desde varios ángulos y necesidades. En este momento, debe comprender las reglas de ubicación detalladas y las relaciones de prioridad.

2. Reglas

2.1 sintaxis coincidente

Coincidencia exacta: = / image
location = / image {lógica de ubicación} La
ruta de uri de solicitud debe ser igual al
prefijo de cadena modificada / image : ^ ~ / image
location ^ ~ / image {lógica de ubicación} La
ruta de uri de solicitud comienza con / image Una vez que coincide, se encuentra en el estado de prioridad más alta, y otras reglas ya no coincidirán (dejarán de coincidir)
prefijo de cadena sin modificar: / image
location / image {lógica de ubicación} La
ruta de uri de la solicitud comienza con / image.
Coincidencia regular:
Con distinción entre mayúsculas y minúsculas ~ .png $ ~ .Png $ ~ .pNg $
no distingue entre mayúsculas y minúsculas: ~ .png ∣ ∗. P ng | ~ * .Png . P n g La
ruta de solicitud uri puede coincidir con la
ubicación ~
.png $ {lógica de ubicación}siempre que satisfaga las reglas habituales.
Comodín: /
coincide con todas las solicitudes actuales del servidor

2.2 Juicio de prioridad

Las diversas reglas de coincidencia mencionadas anteriormente hacen que si hay muchas reglas de ubicación en el servidor y la relación de inclusión es propensa a aparecer, se debe juzgar la prioridad. El
orden anterior se reduce de arriba a abajo en orden de prioridad.
Coincidencia exacta> modificada> sin modificación> regular> comodín de la
misma especie Las reglas tienen relaciones de inclusión.
Coincidencia de prefijo de cadena.
Principio: la longitud máxima de coincidencia, la prioridad más alta (cuanto mayor es la precisión, mayor es la prioridad). El principio
regular
: quién configura la ubicación en la parte superior, la carga es mayor y la prioridad es mayor

2.3 Ejercicio

server {
    
    
       listen 80;
       server_name www.easy.com;

location ^~/image {
    
    return 200}
location /image {
    
    return 201}
location ^~/image/easymall {
    
    return 202}
location =/image/ {
    
    return 203}
location ~*.png$ {
    
    return 204}
location ~.pNg$ {
    
    return 205}
location ~.(png|jpg|gif|jpeg)$ {
    
    return 206}
location / {
    
    return 207}
}

Solicitar url uri valor de retorno
http://www.easy.com / 207
http://www.easy.com/image / image 203
http://www.easy.com/image/easy / image / easy 200
http: //www.easy.com/image/easy.pNg /image/easy.pNg 200
http://www.easy.com/image/easymall.png /image/easymall.png 202
http: //www.easy. com / haha.png /haha.png 204

Prefijos relacionados con la coincidencia de cadenas, precisos, estos filtrarán la ruta en el uri y usarán el uri restante para empalmar el proxy_pass, que puede proteger el
servidor de recursos de la interfaz de back-end { listen 80; server_name www.ou.com; location / hello { proxy_pass http: // localhost: 8090 /; } } se inicia la solicitud del navegador: http://www.ou.com/hello | ingrese nginx para que coincida con el servidor importante | uri / hello url-patter / hello coincide y filtra hola , uri restante / datos de respuesta final: http: // localhost: 8090 / tales reglas de filtrado son para proteger la interfaz de back-end










Descripción del requisito
Utilice nginx para reenviar la solicitud al servidor back-end.
Inserte la descripción de la imagen aquíConfigure nginx.conf.
En la carpeta conf del directorio raíz de nginx, busque nginx.conf
http {nginx actual todas las funciones de servicio http
servidor {} Cada servidor representa un Servidor, cada servidor puede manejar diferentes solicitudes
servidor {}
servidor {}
servidor {}
….
}

3 escribe una estructura de servidor

#一个server表示一个虚拟服务器 一个server跟一个独立tomcat类似
server {
    
    
#当前虚拟服务器监听的端口 多个nginx server可以监听同一个端口
listen 80;
#虚拟服务器的域名 不可以多个server重复
server_name www.ou.com;
#处理请求的访问逻辑,请求应该怎么交给后端的tomcat处理在location决定,一个server下可以有若干个location location url-pattern www.ou.com/hello;www.ou.com/a/b/c/d
location / {
    
    
#/表示通配 当别的匹配url-pattern 的location全部不满足时,/必定满足
proxy_pass http://localhost:8090/;
}
}
 

Como servidor http, nginx cargará el archivo de configuración nginx.conf al inicio.
El contenido de múltiples servidores cargados bajo http, cada servidor será iniciado por nginx como un hilo para implementar la función del servidor http: recibir y enviar solicitudes para
acceder a nginx Hay muchos, múltiples servidores, que manejarán una determinada solicitud.
La configuración del contenido del servidor determina a qué servidor virtual se le da una determinada solicitud. Server
listen: El número de puerto que escucha el servidor actual en el servidor nginx, siempre que un servidor esté configurado con este Monitoreo del número de puerto, nginx ocupa este puerto.
Inserte la descripción de la imagen aquíSi la solicitud llega a nginx, siempre que se cumpla con el monitoreo del número de puerto, ¿puede determinar qué servidor está procesando la solicitud actual?
Server_name Úselo para determinar quién es el nombre de dominio de la solicitud
El texto alternativo generado por computadora: www.test1.comwww.test2.comwww.test3.com0818080serverlisten80
servername nombre de dominio1serverlisten80servername nombre de dominio2

Inserte la descripción de la imagen aquíLa escucha y el nombre del servidor en el servidor determinan si una solicitud a nginx se entrega al servidor del servidor virtual para su procesamiento. Varios servidores no pueden tener el mismo puerto y el mismo nombre de dominio.

3.1 Cómo ejecutar la lógica de procesamiento

La ubicación se usa para comparar la dirección de uri de solicitud actual. Puede configurar múltiples estructuras de uri de comparación de ubicación en el mismo servidor para cumplir con la estructura, y la ubicación con la prioridad más alta es responsable de procesar la
dirección de uri lógica específica de esta solicitud : / a / b / c
dirección URL: http://www.ou.com/a/b/c
ubicación / significa que siempre que la cadena de dirección uri comience con "/", coincidirá con la ubicación. Se considera un comodín, porque Cualquier dirección uri comenzará con "/"
proxy_pass procesando reenvío dinámico de datos (raíz de reenvío de datos estáticos) servidor de
caso de prueba
{ listen 80; nombre_servidor www.ou.com; ubicación / { proxy_pass http://127.0.0.1:8090/; } }





Después de que nginx se inicie, cargará este servidor, el servidor escuchará el puerto 80 y solicitará determinar si el nombre de dominio es www.ou.com cuando llegue al puerto 80. Si está satisfecho, comenzará a determinar la ubicación y lo reenviará al proyecto proxy_pass 8091.

3.2 Prueba de funcionamiento

Asegúrese de que se esté ejecutando un springboot iniciado en 8090.
Inicie el proyecto.
Asegúrese de que www.ou.com pueda acceder a nginx. El archivo de hosts de configuración
127.0.0.1 indica que el servidor nginx ip
127.0.0.1 www.ou.com
nginx se inicia normalmente
Inserte la descripción de la imagen aquí

3.3 Análisis de proceso

Dirección de origen del cliente: http://www.ou.com/hello
| Asignación de la dirección IP del nombre de dominio 127.0.0.1:80 Ingrese el servidor
nginx ingrese nginx **
| Varios servidores determinan el puerto de solicitud y el nombre de dominio de solicitud www.ou.com
| Entréguelo a un servidor virtual para su procesamiento
| patrón de URL coincidente de ubicación / hola coincidencia / coincidencia exitosa
| Ingrese la ubicación y entréguela a proxy_pass para ubicar el servidor back-end real
| / hola empalme a http: // localhost: 8090 / hola
nginx * *
La interfaz de la respuesta final: http: // localhost: 8090 / hello

Caso de aula: análisis de procesos
Dirección de origen del cliente: http://www.ou.com/get/user
| Ingrese el nombre de dominio nginx, asignación de ip, dirección IP, servidor de nginx, ip
| ubicación de coincidencia del servidor / get / user matching /
| solicitud de empalme proxy_pass http : // localhost: 8090 / get / user La
interfaz de respuesta final: http: // localhost: 8090 / get / user

Supongo que te gusta

Origin blog.csdn.net/qq_41536934/article/details/112330330
Recomendado
Clasificación