Tengo un servidor web nginx que actúa como proxy inverso para reenviar solicitudes a Apache para un manejo adicional (le ruego que no pregunte por qué). Tengo una solicitud a la que estoy tratando de adjuntar un encabezado personalizado y me gustaría que nginx reenvíe ese encabezado personalizado a Apache para poder hacer algo con él en una aplicación.
He revisado los HttpProxyModule
documentos, pero no son muy descriptivos, incluso si estoy en el lugar correcto (muy bien podría ser que no lo estoy).
¿Cómo puedo hacer que nginx reenvíe un X-CUSTOM-REFERRER
encabezado? Además, si es posible, me gustaría reenviar cualquier encabezado personalizado que venga. Si lo último es demasiado pedir, lo primero sería suficiente para mi necesidad actual.
Como puede ver, soy muy nuevo en nginx, por lo que la versión correctiva sería útil.
Gracias.
ACTUALIZAR
El fragmento relevante de mi configuración existente:
location / {
proxy_pass http://preview;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header X-Custom-Referrer $x_custom_referrer;
}
fuente
X-Custom-Referrer
encabezado entrante y pasarlo?proxy_set_header X-Custom-Referrer $x_custom_referrer
¿O algo por el estilo?$http_x_custom_referrer
. Sin embargo, todos los encabezados enviados por el cliente deben pasarse automáticamente al backend. ¿Te has puesto enproxy_pass_request_headers off
alguna parte?proxy_set_header
se comenta el relevante ; también estás usando en$x_custom_referrer
lugar de$http_x_custom_referrer
...$http_<custom_header_field>
lugar de$proxy_add_<custom_header_field>
El módulo ngx_headers_more le permite cambiar y agregar encabezados http.
fuente
proxy_pass
.Puede usar encabezados ascendentes (nombrados comenzando con $ http_) y encabezados personalizados adicionales. Por ejemplo:
a continuación, vaya a la consola y haga una solicitud con el encabezado del usuario:
la respuesta contiene X-Hdr-01, enviado por el servidor y X-Upstream-01, enviado por el cliente:
fuente
proxy_pass
directiva.