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 相关文章推荐
destoon在各个服务器下设置URL Rewrite(伪静态)的方法
Jun 21 Servers
Windows下使用Nginx+Tomcat做负载均衡的完整步骤
Mar 31 Servers
JVM上高性能数据格式库包Apache Arrow入门和架构详解(Gkatziouras)
May 26 Servers
Nginx配置文件详解以及优化建议指南
Sep 15 Servers
关于nginx 实现jira反向代理的问题
Sep 25 Servers
zabbix自定义监控nginx状态实现过程
Nov 01 Servers
Nginx+Tomcat负载均衡多实例详解
Apr 11 Servers
Windows server 2012 配置Telnet以及用法详解
Apr 28 Servers
解决Windows Server2012 R2 无法安装 .NET Framework 3.5
Apr 29 Servers
Apache SeaTunnel实现 非CDC数据抽取
May 20 Servers
详解Nginx的超时keeplive_timeout配置步骤
May 25 Servers
Apache Kafka 分区重分配的实现原理解析
Jul 15 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
用文本文件实现的动态实时发布新闻的程序
2006/10/09 PHP
PHP防注入安全代码
2008/04/09 PHP
PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
2014/04/08 PHP
php实现html标签闭合检测与修复方法
2015/07/09 PHP
php实现smarty模板无限极分类的方法
2015/12/07 PHP
javascript中的作用域scope介绍
2010/12/28 Javascript
javascript 基础篇1 什么是js 建立第一个js程序
2012/03/14 Javascript
下拉菜单点击实现连接跳转功能的js代码
2013/05/19 Javascript
js使用for循环与innerHTML获取选中tr下td值
2014/09/26 Javascript
深入理解JavaScript编程中的原型概念
2015/06/25 Javascript
深入解析Backbone.js框架的依赖库Underscore.js的作用
2016/05/07 Javascript
微信小程序入门教程
2016/11/18 Javascript
JavaScript自定义函数实现查找两个字符串最长公共子串的方法
2016/11/24 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
2017/03/01 Javascript
Vue编写多地区选择组件
2017/08/21 Javascript
Vue中封装input组件的实例详解
2017/10/17 Javascript
node.js 模块和其下载资源的镜像设置的方法
2018/09/06 Javascript
教你如何编写Vue.js的单元测试的方法
2018/10/17 Javascript
node.js中Buffer缓冲器的原理与使用方法分析
2019/11/23 Javascript
轻松掌握python设计模式之策略模式
2016/11/18 Python
python实现逻辑回归的方法示例
2017/05/02 Python
使用python在本地电脑上快速处理数据
2017/06/22 Python
Python和Java进行DES加密和解密的实例
2018/01/09 Python
python3将视频流保存为本地视频文件
2018/06/20 Python
python linecache 处理固定格式文本数据的方法
2019/01/08 Python
python使用pandas处理excel文件转为csv文件的方法示例
2019/07/18 Python
Pandas时间序列:重采样及频率转换方式
2019/12/26 Python
python打开音乐文件的实例方法
2020/07/21 Python
浅谈Python 钉钉报警必备知识系统讲解
2020/08/17 Python
Skechers越南官方网站:来自美国的运动休闲品牌
2021/02/22 全球购物
业务副厂长岗位职责
2014/01/03 职场文书
单位人事专员介绍信
2014/01/11 职场文书
餐厅营销的秘密:为什么老顾客会流水?
2019/08/08 职场文书
导游词之山东孔庙
2019/11/04 职场文书
mysql 如何获取两个集合的交集/差集/并集
2021/06/08 MySQL
PHP使用QR Code生成二维码实例
2021/07/07 PHP