欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

nginx重定向次数过多,nginx重定向请求到另一个服务器

墨初 知识笔记 109阅读
Nginx重定向

可以使用Nginx来设置重定向Nginx有两种设置重定向方式

return形式 rewrite形式 return形式

表示结束规则的执行并返回状态码给客户端

#以下三种都可以return code;return url;return code url;

示例

#301表示永久重定向  302表示临时重定向return 301   rewrite形式  

将某个URL重写成特定URL

示例

# rewrite regex replacement flagrewrite ^/$  permanent#正则语法* 代表前面0或更多字符 代表前面1或更多字符代表前面0或1个字符^ 代表字符串的开始位置必须以^后的字符串开头$ 代表字符串结束位置必须以$前的字符串结尾. 通配符匹配任意字符[ ] 匹配指定字符集内的任意字符[^ ] 匹配任何不包括在指定字符集内的任意字符串| 匹配 | 之前或之后的实体() 分组组成一组用于匹配的实体通常会有|来协助

对于replacement重写的地址rewrite指令接收到的是URI并不包含域名、ip、端口、协议等且不包含地址栏中的参数replacement就是匹配成功后用于替换URI中被截取的字符串如果该字符串由

最后一项为flag有以下几种选择

last 表示完成rewrite停止处理后续rewrite指令集然后对当前重写的新url在rewrite指令集上继续进行规则匹配 break 将重写后的URI继续匹配该location块中的后续操作本条location规则匹配完成终止匹配不再匹配后面其他location的规则 redirect 返回302临时重定向将重写后的URI返回给客户端地址栏会显示跳转后的地址 parmanent 返回301永久重定向将重写后的URI返回给客户端地址栏会显示跳转后的地址

last和break两者很像但是使用alias指令时必须使用last使用proxy_pass时必须使用breaklast在本条rewrite执行之后会对其所在的server{}重新发起请求而break在本条rewrite执行之后则会终止匹配

# 对于这种情况一定要用break如果使用last会造成死循环location /cms/ {proxy_pass  ^/cms/(.*)\.html /cms/index.html break;}
rewrite_log
# 用于开启URL重写日志
rewrite_log on | off

标签:
声明:无特别说明,转载请标明本文来源!