Nginx如何获取自定义请求header头和URL参数详解


Posted in Servers onJuly 23, 2022

一、获取 header 请求头

在 ngx_lua 中访问 Nginx 内置变量 ngx.var.http_HEADER 即可获得请求头HEADER的内容。

在 nginx配置中,通过$http_HEADER 即可获得请求头HEADER的内容。

案例:

$.ajax({
    .......
    headers: { 
        Accept: "application/json; charset=utf-8", 
        X-TimerLocal: "Bin"  //这个是自定义的请求头
    },
    .......
});

在nginx的location配置中,在获取header配置时,须要在header名称前面加上固定前缀“http_“,并将header名称中的“-”中划线变为下划线,举例说明:

       自定义的header名称为X-TimerLocal,那在nginx中使用$http_x_timerlocal 来获取到X-TimerLocal的值。

if ($http_x_timerlocal  = 'BIN') {
    rewrite ^(.*/timerbin/.*)$ https://$host$1 permanent;
}

包含X-TimerLocal=BIN的header请求进行判断,若是发现路径中包含/timerbin/路径时,对请求URL进行重写,从新跳转。

二、获取url参数

在 ngx_lua 中访问 Nginx 内置变量 ngx.var.arg_PARAMETER 即可获得GET参数PARAMETER的内容。

在 nginx配置中,通过$arg_PARAMETER 即可获得GET参数PARAMETER的内容。

案例:

通过 http://www.test.com?name=hello&id=123 来验证url的请求参数,能够在nginx中获取到,只需要修改nginx.conf 配置文件如下,就可以在access.log中看到id和name在log中

http {
    include       mime.types;
    default_type  application/octet-stream;


    log_format main '{ "@timestamp": "$time_iso8601", '
    '"servername": "$http_host", '
    '"id": "$arg_id",'
    '"name": "$arg_name",'
    '"remote_addr": "$remote_addr",'
    '"referer": "$http_referer",'
    '"request": "$request",'
    '"request_time": "$request_time",'
    '"status": $status,'
    '"bytes":$body_bytes_sent,'
    '"agent": "$http_user_agent",'
    '"x_forwarded": "$http_x_forwarded_for",'
    '"upstr_addr": "$upstream_addr",'
    '"upstr_host": "$upstream_http_host",'
    '"ups_resp_time": "$upstream_response_time" }';


    access_log  logs/access.log main;
    server_names_hash_bucket_size 128;

总结

到此这篇关于Nginx如何获取自定义请求header头和URL参数的文章就介绍到这了,更多相关Nginx自定义请求header头和URL参数内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!


Tags in this post...

Servers 相关文章推荐
Nginx四层负载均衡的配置指南
Jun 11 Servers
Vertica集成Apache Hudi重磅使用指南
Mar 31 Servers
Kubernetes部署实例并配置Deployment、网络映射、副本集
Apr 01 Servers
HDFS免重启挂载新磁盘
Apr 06 Servers
nginx.conf配置文件结构小结
Apr 08 Servers
nginx配置之并发频次限制
Apr 18 Servers
Windows Server 2019 安装DHCP服务及相关配置
Apr 28 Servers
服务器SVN搭建图文安装过程
Jun 21 Servers
Linux中一对多配置日志服务器的详细步骤
Jul 23 Servers
apache虚拟主机配置的三种方式(小结)
Jul 23 Servers
ssh服务器拒绝了密码 请再试一次已解决(亲测有效)
Aug 14 Servers
nginx配置指令之server_name的具体使用
Aug 14 Servers
Apache自带的ab压力测试工具的实现
Jul 23 #Servers
apache虚拟主机配置的三种方式(小结)
Jul 23 #Servers
django项目、vue项目部署云服务器的详细过程
Jul 23 #Servers
Nginx报错104:Connection reset by peer问题的解决及分析
Jul 23 #Servers
centos环境下nginx高可用集群的搭建指南
Nginx如何配置根据路径转发详解
Jul 23 #Servers
Linux中一对多配置日志服务器的详细步骤
Jul 23 #Servers
You might like
Protoss兵种对照表
2020/03/14 星际争霸
php语言流程控制中的主动与被动
2012/11/05 PHP
PHP文章按日期(月日)SQL归档语句
2012/11/29 PHP
php实现图片缩放功能类
2013/12/18 PHP
php时间戳转换的示例
2014/03/31 PHP
cnblogs csdn 代码运行框实现代码
2009/11/02 Javascript
jquery下为Event handler传递动态参数的代码
2011/01/06 Javascript
ajax的hide隐藏问题解决方法
2012/12/11 Javascript
JavaScript var声明变量背后的原理示例解析
2013/10/12 Javascript
Javascript 按位取反运算符 (~)
2014/02/04 Javascript
JS访问SWF的函数用法实例
2015/07/01 Javascript
纯css下拉菜单 无需js
2016/08/15 Javascript
纯js实现手风琴效果代码
2020/04/17 Javascript
详解使用Vue.Js结合Jquery Ajax加载数据的两种方式
2017/01/10 Javascript
js实现倒计时关键代码
2017/05/05 Javascript
使用JavaScript实现node.js中的path.join方法
2018/08/12 Javascript
javascript json字符串到json对象转义问题
2019/01/22 Javascript
详解基于Vue的支持数据双向绑定的select组件
2019/09/02 Javascript
vue prop属性传值与传引用示例
2019/11/13 Javascript
Python中还原JavaScript的escape函数编码后字符串的方法
2014/08/22 Python
python 的 scapy库,实现网卡收发包的例子
2019/07/23 Python
通过自学python能找到工作吗
2020/06/21 Python
解决Python import .pyd 可能遇到路径的问题
2021/03/04 Python
IE支持HTML5的解决方法
2009/10/20 HTML / CSS
Guess美国官网:美国知名服装品牌
2019/04/08 全球购物
linux下进程间通信的方式
2014/12/23 面试题
学校经典推荐信
2013/10/30 职场文书
营销与策划应届生求职信
2013/11/04 职场文书
数控专业应届生求职信
2013/11/27 职场文书
初中女生自我鉴定
2013/12/19 职场文书
社区居务公开实施方案
2014/03/27 职场文书
全国爱眼日活动总结
2015/02/27 职场文书
幼儿园辞职信范文
2015/02/27 职场文书
数据库的高级查询六:表连接查询:外连接(左外连接,右外连接,UNION关键字,连接中ON与WHERE的不同)
2021/04/05 MySQL
go语言中json数据的读取和写出操作
2021/04/28 Golang
使用Python开发冰球小游戏
2022/04/30 Python