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配置proxy_pass中url末尾带/与不带/的区别详解
Mar 31 Servers
如何利用map实现Nginx允许多个域名跨域
Mar 31 Servers
使用nginx配置访问wgcloud的方法
Jun 26 Servers
Nginx下SSL证书安装部署步骤介绍
Dec 06 Servers
Nginx 反向代理解决跨域问题多种情况分析
Jan 18 Servers
Windows server 2012 配置Telnet以及用法详解
Apr 28 Servers
解决IIS7下无法绑定https主机的问题
Apr 29 Servers
Tomcat弱口令复现及利用
May 06 Servers
项目中Nginx多级代理是如何获取客户端的真实IP地址
May 30 Servers
Windows Server 2022 超融合部署(图文教程)
Jun 25 Servers
windows server 2016 域环境搭建的方法步骤(图文)
Jun 25 Servers
zabbix如何添加监控主机和自定义监控项
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
要会喝咖啡也要会知道咖啡豆
2021/03/03 咖啡文化
php 图像函数大举例(非原创)
2009/06/20 PHP
PHP面向对象教程之自定义类
2014/06/10 PHP
PHP中常用的字符串格式化函数总结
2014/11/19 PHP
yii2.0实现pathinfo的形式访问的配置方法
2016/04/06 PHP
php 使用curl模拟登录人人(校内)网的简单实例
2016/06/06 PHP
thinkphp框架实现删除和批量删除
2016/06/29 PHP
PHP实现用户登录的案例代码
2018/05/10 PHP
PHP abstract 抽象类定义与用法示例
2018/05/29 PHP
新浪中用来显示flash的函数
2007/04/02 Javascript
JS 添加网页桌面快捷方式的代码详细整理
2012/12/27 Javascript
javascript搜索框点击文字消失失焦时文本出现
2014/09/18 Javascript
JavaScript+html5 canvas实现本地截图教程
2020/04/16 Javascript
angular源码学习第一篇 setupModuleLoader方法
2016/10/20 Javascript
JavaScript模仿Pinterest实现图片预加载功能
2016/10/25 Javascript
简单实现node.js图片上传
2016/12/18 Javascript
js前端实现图片懒加载(lazyload)的两种方式
2017/04/24 Javascript
React Native自定义控件底部抽屉菜单的示例
2018/02/08 Javascript
浅谈Vue路由快照实现思路及其问题
2018/06/07 Javascript
JS如何实现网站中PC端和手机端自动识别并跳转对应的代码
2020/01/08 Javascript
[01:06:30]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第二场 1月9日
2021/03/11 DOTA
Python解析json文件相关知识学习
2016/03/01 Python
教你用Type Hint提高Python程序开发效率
2016/08/08 Python
python制作小说爬虫实录
2017/08/14 Python
python3.6.3转化为win-exe文件发布的方法
2018/10/31 Python
python实现AES加密解密
2019/03/28 Python
Python多线程thread及模块使用实例
2020/04/28 Python
CSS3中的5个有趣的新技术
2009/04/02 HTML / CSS
Desigual美国官方网站:西班牙服装品牌
2019/03/29 全球购物
招聘专员岗位职责
2014/03/07 职场文书
“六查”、“三学”、“三干”查摆问题整改措施
2014/09/27 职场文书
欢送领导祝酒词
2015/08/12 职场文书
优秀创业计划书分享
2019/07/19 职场文书
导游词之塘栖古镇
2019/12/04 职场文书
如何利用python和DOS获取wifi密码
2021/03/31 Python
SQL中去除重复数据的几种方法汇总(窗口函数对数据去重)
2023/05/08 MySQL