Nginx获取自定义头部header的值

简介:

Nginx读取自定义header

在参考了资料:
http://stackoverflow.com/questions/8393772/how-to-get-non-standard-http-headers-on-nginx
http://nginx.org/en/docs/http/ngx_http_core_module.html#underscores_in_headers
http://serverfault.com/questions/297225/nginx-passing-back-custom-header
https://easyengine.io/tutorials/nginx/forwarding-visitors-real-ip/
http://www.ttlsa.com/nginx/nginx-proxy_set_header/
后得到如下:
1、nginx是支持读取非nginx标准的用户自定义header的,但是需要在http或者server下开启header的下划线支持:

  • underscores_in_headers on;

2、比如我们自定义header为X-Real-IP,通过第二个nginx获取该header时需要这样:

  • $http_x_real_ip; (一律采用小写,而且前面多了个http_)

3、如果需要把自定义header传递到下一个nginx:

  • 如果是在nginx中自定义采用proxy_set_header X_CUSTOM_HEADER $http_host;

  • 如果是在用户请求时自定义的header,例如curl –head -H “X_CUSTOM_HEADER: foo” http://domain.com/api/test,则需要通过proxy_pass_header X_CUSTOM_HEADER来传递

示例:

http{
   upstream myServer {  
       server 127.0.0.1:8082;
   }
   underscores_in_headers on;
   server {
       listen       80;
       server_name  localhost;

       location  / {
     proxy_set_header Some-Thing $http_x_custom_header;;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_pass http://myServer;
       }
   } }


转自:http://blog.csdn.net/xbynet/article/details/51899286

本文转自奔跑在路上博客51CTO博客,原文链接http://blog.51cto.com/qiangsh/1842944如需转载请自行联系原作者


qianghong000

相关文章
|
8月前
|
应用服务中间件 nginx
nginx优化:URI过长或request header过大导致400或414报错
当出现URI过长或请求头过大导致400或414报错时,可以通过以下方式对Nginx进行优化: 1. 调整client_max_body_size参数:该参数用于限制请求体的大小。默认情况下,Nginx的client_max_body_size参数设置为1M。如果请求体超过这个大小,Nginx会返回400错误。您可以根据实际需求适当增加这个值,例如设置为10M或更大。 ``` http { client_max_body_size 10M; } ``` 2. 调整large_client_header_buffers参数:该参数用于调整请求头缓冲区的大
1923 0
|
1月前
|
应用服务中间件 nginx
Nginx 配置,自定义日志格式 log_format
Nginx 配置,自定义日志格式 log_format
66 0
|
10月前
|
应用服务中间件 nginx
nginx输入请求的header和body到日志
nginx输入请求的header和body到日志
443 1
|
2月前
|
JSON 应用服务中间件 nginx
在Nginx日志中记录请求的header和请求body
在Nginx日志中记录请求的header和请求body
353 0
|
10月前
|
应用服务中间件 nginx
nginx输入请求的header到日志
nginx输入请求的header到日志
513 1
|
应用服务中间件 Shell nginx
Shell脚本:一键安装Nginx服务,用户可自定义Nginx版本
Shell脚本:一键安装Nginx服务,用户可自定义Nginx版本
289 0
|
XML JSON 缓存
自定义变量、Nginx 访问日志转换为 json 及 Nginx gzip 压缩功能(二)|学习笔记
快速学习自定义变量、Nginx 访问日志转换为 json 及 Nginx gzip 压缩功能
269 0
自定义变量、Nginx 访问日志转换为 json 及 Nginx gzip 压缩功能(二)|学习笔记
|
存储 应用服务中间件 开发工具
Nginx location 基础使用、四层访问控制、账户认证及自定义日志路径(四)|学习笔记
快速学习 Nginx location 基础使用、四层访问控制、账户认证及自定义日志路径
154 0
Nginx location 基础使用、四层访问控制、账户认证及自定义日志路径(四)|学习笔记
|
监控 Ubuntu JavaScript
Nginx location 基础使用、四层访问控制、账户认证及自定义日志路径(三)
Nginx location 基础使用、四层访问控制、账户认证及自定义日志路径(三)
431 0
Nginx location 基础使用、四层访问控制、账户认证及自定义日志路径(三)
|
安全 应用服务中间件 网络安全
Nginx HTTPS 实现、自定义 Server 名称及升级 OpenSSL(二)|学习笔记
快速学习 Nginx HTTPS 实现、自定义 Server 名称及升级 OpenSSL
163 0