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 相关文章推荐
Apache压力测试工具的安装使用
Mar 31 Servers
nginx 多个location转发任意请求或访问静态资源文件的实现
Mar 31 Servers
Nginx反向代理至go-fastdfs案例讲解
Aug 02 Servers
Nginx反向代理学习实例教程
Oct 24 Servers
Nginx+Tomcat负载均衡多实例详解
Apr 11 Servers
解决Windows Server2012 R2 无法安装 .NET Framework 3.5
Apr 29 Servers
Tomcat弱口令复现及利用
May 06 Servers
CentOS7环境下MySQL8常用命令小结
Jun 10 Servers
解决Git推送错误non-fast-forward的方法
Jun 25 Servers
Nginx配置使用详解
Jul 07 Servers
Linux安装Docker详细教程
Jul 07 Servers
Shell中的单中括号和双中括号的用法详解
Dec 24 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/04/29 PHP
php array_search() 函数使用
2010/04/13 PHP
php自动获取目录下的模板的代码
2010/08/08 PHP
destoon后台网站设置变成空白的解决方法
2014/06/21 PHP
php实现的二分查找算法示例
2017/06/20 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例
2019/03/01 PHP
HTML IMG标签 onload 内存溢出导致浏览器CPU占用过高
2021/03/09 Javascript
javascript学习笔记(五)原型和原型链详解
2014/10/08 Javascript
JavaScript变量的作用域全解析
2015/08/14 Javascript
WordPress 单页面上一页下一页的实现方法【附代码】
2016/03/10 Javascript
JavaScript运动框架 多物体任意值运动(三)
2017/05/17 Javascript
微信小程序实现点击按钮修改字体颜色功能【附demo源码下载】
2017/12/05 Javascript
vue-cli系列之vue-cli-service整体架构浅析
2019/01/14 Javascript
vue + any-touch实现一个iscroll 实现拖拽和滑动动画效果
2019/04/08 Javascript
vue发送websocket请求和http post请求的实例代码
2019/07/11 Javascript
Vue.js组件实现选项卡以及切换特效
2019/07/24 Javascript
前后端常见的几种鉴权方式(小结)
2019/08/04 Javascript
layui写后台表格思路和赋值用法详解
2019/11/14 Javascript
jQuery实现轮播图效果
2019/11/26 jQuery
解决Mint-ui 框架Popup和Datetime Picker组件滚动穿透的问题
2020/11/04 Javascript
[01:45]DOTA2新英雄“神谕者”全方位展示
2014/11/21 DOTA
python 正则式 概述及常用字符
2009/05/07 Python
Python 离线工作环境搭建的方法步骤
2019/07/29 Python
python 实现一个反向单位矩阵示例
2019/11/29 Python
Python实例教程之检索输出月份日历表
2020/12/16 Python
html5 touch事件实现触屏页面上下滑动(一)
2016/03/10 HTML / CSS
HTML5 和小程序实现拍照图片旋转、压缩和上传功能
2018/10/08 HTML / CSS
DVF官方网站:美国时装界尊尚品牌
2017/08/29 全球购物
目标管理责任书
2014/04/15 职场文书
志愿者活动总结
2014/04/28 职场文书
英语一分钟演讲稿
2014/04/29 职场文书
工作检讨书范文
2015/01/23 职场文书
Nginx反向代理配置的全过程记录
2021/06/22 Servers
Spring Cloud OAuth2实现自定义token返回格式
2022/06/25 Java/Android