问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

nginx转发配置

发布网友 发布时间:2022-11-23 13:10

我来回答

1个回答

热心网友 时间:2024-09-08 19:49

顺序 no优先级:
( location = ) > ( location 完整路径 ) > ( location ^~ 路径 ) > ( location ~,~* 正则顺序 ) > ( location 部分起始路径 ) > ( / )

上面的匹配结果
按照上面的 location 写法,以下的匹配示例成立:

所以实际使用中,个人觉得至少有三个匹配规则定义,如下:

rewrite 功能就是,使用 nginx 提供的全局变量或自己设置的变量,结合正则表达式和标志位实现 url 重写以及重定向。 rewrite 只能放在 server{},location{},if{} 中,并且只能对域名后边的除去传递的参数外的字符串起作用,例如 http://seanlook.com/a/we/index.php?id=1&u=str 只对 /a/we/index.php 重写。语法 rewrite regex replacement [flag] ;

如果相对域名或参数字符串起作用,可以使用全局变量匹配,也可以使用 proxy_pass 反向代理。

表明看 rewrite 和 location 功能有点像,都能实现跳转,主要区别在于 rewrite 是在同一域名内更改获取资源的路径,而 location 是对一类路径做控制访问或反向代理,可以 proxy_pass 到其他机器。很多情况下 rewrite 也会写在 location 里,它们的执行顺序是:

如果其中某步 URI 被重写,则重新循环执行1-3,直到找到真实存在的文件;循环超过10次,则返回 500 Internal Server Error 错误。

因为 301 和 302 不能简单的只返回状态码,还必须有重定向的 URL ,这就是 return 指令无法返回 301 , 302 的原因了。这里 last 和 break 区别有点难以理解:

if判断指令

语法为 if(condition){...} ,对给定的条件 condition 进行判断。如果为真,大括号内的 rewrite 指令将被执行, if 条件 (conditon) 可以是如下任何内容:

-f 和 !-f 用来判断是否存在文件
-d 和 !-d 用来判断是否存在目录
-e 和 !-e 用来判断是否存在文件或目录
-x 和 !-x 用来判断文件是否可执行

例如:

下面是可以用作if判断的全局变量

例: http://localhost:88/test1/test2/test.php
$host:localhost
$server_port : 88
$request_uri : http://localhost:88/test1/test2/test.php
$document_uri : /test1/test2/test.php
$document_root : /var/www/html
$request_filename : /var/www/html/test1/test2/test.php

小括号 () 之间匹配的内容,可以在后面通过 $1 来引用, $2 表示的是前面第二个 () 里的内容。正则里面容易让人困惑的是 \ 转义特殊字符。

例1

对形如 /images/ef/uh7b3/test.png 的请求,重写到 /data?file=test.png ,于是匹配到 location /data ,先看 /data/images/test.png 文件存不存在,如果存在则正常响应,如果不存在则重写 tryfiles 到新的 image404 location ,直接返回 404 状态码。

例2

对形如 /images/bla_500x400.jpg 的文件请求,重写到 /resizer/bla.jpg?width=500&height=400 地址,并会继续尝试匹配 location 。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
食道癌临床症状有哪些 食道肿瘤晚期症状 个人营业执照收款码哪个费用低 种植红薯需要追肥吗? 红薯用膨大素有害吗?我可能买了用膨大素的红薯,外观非常漂亮切开里 ... 被套200*230是什么意思 被套是200*230的 陪嫁的被套同样的花可以买两种颜色吗? 小米流量卡好用吗?全面套餐分析+手机卡套餐推荐!#流量套餐测评!_百度... 第一运程2024年8月19日十二生肖属虎的运势解析 剑与远征购买限时礼包能加大冒险家经验吗 34岁头上突然长白发三根 玉米面怎样做早点 松下全自动洗衣机为什么洗涤过程中会停止3-4分钟 新楼盘小高层2楼容易反水吗 在简历中怎样强调法务会计 清明节为什么要插柳 清明节干什么 造梦西游3大闹天庭篇沙僧最佳配招是什么 造梦西游3大闹天庭篇沙僧哪个技能强 造梦西游3沙僧琉璃暴击最多多少 造梦西游3吕岳怎么打沙僧 三星galaxy s6黑屏怎么办 为什么你的眼睛亮晶晶是什么歌 海胆有没有毒 海胆含有毒素吗 平行游戏联合游戏合作游戏是谁提出的 华为手机怎么注册一个新的不用手机号? 华为手机怎么注册? 天津公积金贷款额度计算方法和公司 长冻疮了怎么治好呀 长冻疮了怎么办 如何将dbf格式的文件数据导入excel2007?2007好像没有导入数据库数据的功... ...就出现提示 无法运行宏,可能是因为该宏在此工作簿中不可用 ...出现“无法运行***宏。可能是因为该宏在此工作簿中不可用,或者所有... QQ空间点不进去QQ游戏也进不去怎么办 流产后不排恶露好吗,流产后恶露怎么排干净怎么办 冷补的补胎流程及补胎时间? 摩托车补胎方法 一般人我可不说 《人生若如初见》人物关系介绍 越剧徐亚红今年几岁 《人生若如初见》撤档改网播,更新6集又下架,对剧中的演员有何影响?_百 ... 人生若如初见秋红身份 染指于鼎的古籍典故 染指于鼎的意思 曹操送荀彧的盒子里究竟装了什么,让荀彧看后立马自杀? 染指的典故 古代是谁把鼎举起来的 双卡手机如何注册两个 双卡手机如何注册两个 双卡手机怎么用两个? 三亚买动车票可以在百度糯米吗 买三张火车票百度糯米怎么买