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开启Brotli压缩算法实现过程详解
Mar 31 Servers
Nginx安装完成没有生成sbin目录的解决方法
Mar 31 Servers
Nginx工作原理和优化总结。
Apr 02 Servers
nginx部署多前端项目的几种方法
May 25 Servers
Nginx四层负载均衡的配置指南
Jun 11 Servers
Linux中Nginx的防盗链和优化的实现代码
Jun 20 Servers
nginx作grpc的反向代理踩坑总结
Jul 07 Servers
nginx请求限制配置方法
Jul 09 Servers
zabbix自定义监控nginx状态实现过程
Nov 01 Servers
详解nginx安装过程并代理下载服务器文件
Feb 12 Servers
阿里云国际版 使用Nginx作为HTTPS转发代理服务器
May 11 Servers
Linux在两个服务器直接传文件的操作方法
Aug 05 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
PHP安全编程之加密功能
2006/10/09 PHP
php 获取远程网页内容的函数
2009/09/08 PHP
应用开发中涉及到的css和php笔记分享
2011/08/02 PHP
php+iframe实现隐藏无刷新上传文件
2012/02/10 PHP
PHP二维数组排序的3种方法和自定义函数分享
2014/04/09 PHP
ThinkPHP3.1基础知识快速入门
2014/06/19 PHP
非常实用的PHP常用函数汇总
2014/12/17 PHP
Codeigniter发送邮件的方法
2015/03/19 PHP
php中smarty模板条件判断用法实例
2015/06/11 PHP
PHP如何将XML转成数组
2016/04/04 PHP
php将服务端的文件读出来显示在web页面实例
2016/10/31 PHP
TextArea不支持maxlength的解决办法(jquery)
2011/09/13 Javascript
推荐17个优美新鲜的jQuery的工具提示插件
2012/09/14 Javascript
使用js Math.random()函数生成n到m间的随机数字
2014/10/09 Javascript
js的for in循环和java里foreach循环的区别分析
2015/01/28 Javascript
原生js和jQuery写的网页选项卡特效对比
2015/04/27 Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
2015/10/25 Javascript
jQuery搜索框效果实现代码(百度关键词联想)
2021/02/25 Javascript
详解使用nvm安装node.js
2017/07/18 Javascript
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
2019/12/11 Javascript
[01:29]Ti4循环赛第三日精彩回顾
2014/07/13 DOTA
python通过自定义isnumber函数判断字符串是否为数字的方法
2015/04/23 Python
Python如何生成树形图案
2018/01/03 Python
python实现画五角星和螺旋线的示例
2019/01/20 Python
python实现顺时针打印矩阵
2019/03/02 Python
wxpython+pymysql实现用户登陆功能
2019/11/19 Python
增大python字体的方法步骤
2020/07/05 Python
Python 如何实现数据库表结构同步
2020/09/29 Python
微软澳洲官方网站:Microsoft Australia
2017/01/10 全球购物
Lookfantastic西班牙官网:英国知名美妆购物网站
2018/06/13 全球购物
艺术系大学生毕业个人自我评价
2013/09/19 职场文书
营销主管自我评价怎么写
2013/09/19 职场文书
实习自我鉴定模板
2013/09/28 职场文书
战略合作协议书范本
2014/04/18 职场文书
大学生社团活动总结
2014/04/26 职场文书
英语课外活动总结
2014/08/27 职场文书