nginx conf 的设置问题
PHP中文网
PHP中文网 2017-05-16 17:29:03
[Linux讨论组]

1

在 http {} 部分, 设置了

map $http_header_1 $route {default 10;}
map $http_header_2 $route {default 20;}
map $http_header_3 $route {default 30;}

请求的header设置为

curl -H "header_1:0" http://xxx.com/xxx

然后在 server {} 部分,

echo "$route";

打印结果始终为 30, 因为 第三个map指令覆盖了前面的值;

问题来了: 如何在map部分根据不同的header, 获得想要的值?

2

为解决问题1, 我想的办法为

map $http_header_1 $route1 {default 10;}
map $http_header_2 $route2 {default 20;}
map $http_header_3 $route3 {default 30;}

然后在 location {} 部分, 用

if ($http_header_1) {
echo "$route1";
}

去获得想要的值; 可耻的是, 这个 if 似乎没成功, 而且nginx不推荐使用if


那么, 哪位深藏功与名的同学, 帮忙解答一下?

PHP中文网
PHP中文网

认证0级讲师

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号