按原样返回传入的标题Nginx

问题描述:

我们有一个下游应用程序,它在打击nginx之前设置一些自定义标题来自浏览器的请求。 nginx只提供静态内容。 即浏览器>>应用程序A >> nginx按原样返回传入的标题Nginx

要求是nginx应该能够返回它所接收到的所有头信息,它们将被下游服务器返回给浏览器。默认情况下它只返回通用头文件(cookies等,expiry等),而不是重新调用下游服务器发送的定制头文件。

例如,有一个名为appnumber的头,nginx接收的值为app01。我试图用下面的规则明确地设置它,如果它存在,手动设置它,但没有帮助,因为它会抛出错误,不允许变量。

if ($appnumber) { 
    add_header appnumber $appnumber; 
} 

有人可以在这里指导我吗?

请求标头存储在$ http_变量下。你可以尝试像

if ($appnumber) { 
    add_header appnumber $http_appnumber; 
} 

参考http://nginx.org/en/docs/http/ngx_http_core_module.htmlnginx - read custom header from upstream server

+0

感谢您的建议大卫,但“add_header”不接受动态任何变量按照其格式 - nginx的配置会失败。 – Anooj

+0

试试看 - https://github.com/openresty/lua-nginx-module。 – David