X-Forwarded-For X-Forwarded-For es una cabecera de extensión. El protocolo HTTP/1.1 (RFC 2616) no lo define; fue introducido originalmente por Squid, un software proxy de caché, para representar la IP real del solicitante HTTP, y ahora se ha convertido en un estándar de facto, ampliamente utilizado por los principales proxies HTTP, balanceo de carga y otros servicios de reenvío, y escrito en el estándar RFC 7239 (Extensión HTTP Reenviada).
En una estructura de red con múltiples capas de proxies (por ejemplo, una CDN y una dirección IP Anti-DDoS Pro conectadas a un cortafuegos de aplicaciones web), las direcciones IP de todos los proxies se añaden al campo x-forwarded-for. Esto se debe a que el servidor proxy escribe la dirección IP del proxy para cada reenvío.
El formato es el siguiente:
X-Forwarded-For: client_ip, proxy1_ip, proxy2_ip Forja X-Forwarded-For
Añadimos el encabezado de solicitud X-Forwarded-For mediante cartero, que forja algo así:
Usé el servicio SLB de Alibaba Cloud, SLB -> IIS, si obtenemos la primera dirección IP, debe ser incorrecta, la última dirección IP es la IP real del cliente.
(En la vida real, necesitas obtenerlo según tu propia arquitectura, y obtener la dirección IP real del cliente depende de cuántas capas de proxies hayas pasado.Crees en la primera capa)
Para usar nginx como proxy inverso, puedes configurarlo de la siguiente manera:
El servidor proxy más externo no confía en la entrada X-Reenviada del cliente, sino que la sobrescribe directamente, en lugar de añadirla.
|