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

目录 一、获取 header 请求头 二、获取url参数 总结

一、获取 header 请求头

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

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

案例:

?
1
2
3
4
5
6
7
8
$.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的值。

?
1
2
3
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中

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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参数内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/JineD/article/details/125434338

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:Linux系统多网卡环境下的路由配置详解

2023-3-19 3:19:19

建站知识

小知识:Linux两台服务器之间传输文件和文件夹操作步骤

2023-3-19 3:27:48

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索