IPIPGO proxy ip ¿Cómo distingue nginx entre http y proxy de puertos?

¿Cómo distingue nginx entre http y proxy de puertos?

Cuando usamos nginx como servidor proxy, a veces necesitamos hacer diferentes procesamientos para diferentes peticiones, como distinguir entre peticiones http o proxies de puerto...

¿Cómo distingue nginx entre http y proxy de puertos?

Cuando usamos nginx como servidor proxy, a veces necesitamos hacer un procesamiento diferente para diferentes peticiones, como distinguir si es una petición http o una proxy de puerto. Entonces, ¿cómo logra nginx esta distinción? A continuación, voy a explicar en detalle cómo nginx puede distinguir entre http y proxies de puerto.

Configuración del bloque servidor
En primer lugar, necesitamos configurar el bloque de servidor en el archivo de configuración de nginx para distinguir entre peticiones http y proxies de puerto. He aquí un ejemplo sencillo:
"`nginx
servidor {
Escucha 80.
nombre_servidor ejemplo.com.
ubicación / {
proxy_pass http://backend.
}
}

servidor {
Escucha 8080;
nombre_servidor ejemplo.com.
ubicación / {
proxy_pass http://backend:8080.
}
}
“`
En la configuración anterior, hemos configurado dos bloques de servidores que escuchan en los puertos 80 y 8080. Cuando se recibe una solicitud en el puerto 80, nginx envía la solicitud a http://backend; cuando se recibe una solicitud en el puerto 8080, nginx envía la solicitud a http://backend:8080.

Utilizar el módulo de mapas
Además de configurar el bloque del servidor, también podemos utilizar el módulo map de nginx para diferenciar entre peticiones http y proxies de puerto. el módulo map se puede utilizar para asignar una variable a otro valor en función de su valor, permitiendo así una lógica de procesamiento diferente.

He aquí un ejemplo de utilización del módulo de mapas:
"`nginx
http {
map $server_port $backend {
backend por defecto.
8080 backend:8080.
}

servidor {
Escucha 80.
nombre_servidor ejemplo.com.
ubicación / {
proxy_pass http://$backend.
}
}
}
“`
En la configuración anterior, hemos utilizado el módulo map para asignar diferentes valores de $backend en función del valor de $server_port. Cuando $server_port es 80, el valor de $backend es backend; cuando $server_port es 8080, el valor de $backend es backend:8080. con esto se consigue la función de distinguir entre peticiones http y proxies de puertos.

Uso de sentencias condicionales if
Además del módulo map, también podemos utilizar la sentencia condicional if de nginx para diferenciar entre peticiones http y proxies de puerto. Las sentencias condicionales if pueden realizar diferentes lógicas de procesamiento basadas en condiciones.

A continuación se muestra un ejemplo de uso de una sentencia condicional if:
"`nginx
servidor {
Escucha 80.
nombre_servidor ejemplo.com.
ubicación / {
if ($server_port = 8080) {
proxy_pass http://backend:8080.
romper;
}
proxy_pass http://backend.
}
}
“`
En la configuración anterior, usamos la sentencia condicional if para determinar si el valor de $server_port es 8080, si lo es entonces la petición es proxyada a http://backend:8080, de lo contrario la petición es proxyada a http://backend. Haciendo esto, también podemos diferenciar entre la petición http y el proxyado del puerto función.

resúmenes
A través de la introducción anterior, podemos ver que nginx tiene una variedad de maneras de lograr la función de distinguir entre las solicitudes http y proxies de puerto, tales como la configuración de bloques de servidor, utilizando el módulo de mapa, utilizando si las declaraciones condicionales y así sucesivamente. Diferentes maneras son aplicables a diferentes escenarios, podemos elegir la forma adecuada para lograr la función de distinguir entre las solicitudes http y proxies de puerto de acuerdo a las necesidades reales.

Espero que lo anterior sea útil, y si hay alguna otra pregunta, por favor no dude en dejar un comentario para discutir.

Este artículo fue publicado o recopilado originalmente por ipipgo.https://www.ipipgo.com/es/ipdaili/6973.html

作者: ipipgo

Profesional extranjero proxy ip proveedor de servicios-IPIPGO

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Póngase en contacto con nosotros

Póngase en contacto con nosotros

13260757327

Consulta en línea. Chat QQ

Correo electrónico: hai.liu@xiaoxitech.com

Horario de trabajo: de lunes a viernes, de 9:30 a 18:30, días festivos libres
Seguir WeChat
Síguenos en WeChat

Síguenos en WeChat

Volver arriba
es_ESEspañol