当前位置: 首页 > news >正文

云尚网络科技有限公司介绍手机优化大师官方版

云尚网络科技有限公司介绍,手机优化大师官方版,的网站制作,房地产网站建设提案本篇文章主要对break,if,return,rewrite和set这5个指令的执行顺序进行深究,如需了解这5个指令的功能和配置,请参考另一篇文章 Nginx(三) 配置文件详解 由于文章篇幅较长,所以我就先把结论贴出来&#xff0c…

       本篇文章主要对break,if,return,rewrite和set这5个指令的执行顺序进行深究,如需了解这5个指令的功能和配置,请参考另一篇文章 Nginx(三) 配置文件详解

       由于文章篇幅较长,所以我就先把结论贴出来,再看测试结果。

        1.server层执行完break指令后,该层级所有跟ngx_http_rewrite_module模块相关的指令都不再被执行,但不影响location层ngx_http_rewrite_module模块相关的指令执行;

        2.location层执行完break指令后,会直接终止整个请求处理过程(后续其它指令也不再被执行),且请求不会被重定向,nginx根据最终请求路径(此时不再匹配location)将请求结果返回给客户端;

        3.无论在哪个层级执行完return指令后,请求处理过程都会立刻终止并将指定的code、重定向URL、响应正文文本返回给客户端。

        4.server层ngx_http_rewrite_module模块相关的指令是按照配置顺序依次执行;

说完结论后,我们再将原文3.3章节的所有知识结合起来一起做个测试。

基本配置如下

http {log_subrequest on;				# 开启将子请求日志记录到access.log中log_format format2 escape=json '{''"SN":"$sn",'                     #自定义变量sn '"http_host":"$http_host",''"remote_addr":"$remote_addr",''"time_iso8601":"$time_iso8601",''"request":"$request",''"http_referer":"$http_referer",''"request_time":"$request_time",''"request_length":"$request_length",''"status":"$status",''"bytes_sent":"$bytes_sent",'#'"body_bytes_sent":"$body_bytes_sent",''"user_agent":"$http_user_agent",''}';access_log  logs/access.log  format2;absolute_redirect on;server_name_in_redirect off;port_in_redirect on;root pages;    # 根目录设置为psges,该目录下只有index.html、test.html、one.html、two.html、three.htmlserver {listen 8688;server_name www.read*******.cn;root pages;# 下面配置本次测试的指令······}
}

测试1:

server {···break;rewrite /t1 /test.html;set $sn 1;                # 该变量最终值将记录到access.log中。if ($sn = 1) {set $sn 2;break;set $sn 3;}return 500;location / {index  index.html index.htm;}
}
请求地址host:8688/t1
请求结果404
error.log日志输出*878 open() "/usr/local/nginx/pages/t1" failed (2: No such file or directory)
access.log日志输出{"SN":""
最终请求地址host:8688/t1
结论

1.在请求重写指令未执行前就执行了break,导致server层级下所有跟ngx_http_rewrite_module模块相关的指令都不再执行,所以请求并未重写,请求路径不变。if、set、return指令都未执行。

2.location中未匹配到/t1,且pages文件夹下没有t1文件,所以返回404。


测试2:

server {···rewrite /t1 /test.html;set $sn 1;                # 该变量最终值将记录到access.log中。if ($sn = 1) {set $sn 2;break;set $sn 3;}return 500;location / {index  index.html index.htm;}
}
请求地址host:8688/t1
请求结果200
error.log日志输出
access.log日志输出{"SN":"2"
最终请求地址host:8688/test.html
结论

请求被重写,执行完break后,"set $sn 3""return"指令未执行。

server层,ngx_http_rewrite_module 模块相关指令按照配置顺序依次执行。

server层执行break后,该层级所有跟ngx_http_rewrite_module模块相关的指令都不再执行。


测试3

server {···rewrite /t1 /test.html;return 500;set $sn 1;                # 该变量最终值将记录到access.log中。location / {index  index.html index.htm;}
}
请求地址host:8688/t1
请求结果500
error.log日志输出
access.log日志输出{"SN":""
最终请求地址
结论server层执行完return后,请求处理过程会立刻终止,并将指定code返回给客户端。

测试4

server {···rewrite /t1 /t2;rewrite /t2 /t3;set $sn 1;                # 该变量最终值将记录到access.log中。if ($sn = 1) {set $sn 2;break;set $sn 3;}location /t2 {rewrite /t2 /test.html;}location /t3 {rewrite /t3 /t4;if ($sn = 2) {set $sn 31;rewrite /t4 /t5;break;set $sn 32;rewrite /t5 /t6;}set $sn 33;rewrite /t5 /p1;rewrite /t6 /p2;}location /t5 {set $sn 51;rewrite /t5 /p3;}location /t6 {set $sn 61;rewrite /t6 /p4;}location / {index  index.html index.htm;}
}
请求地址host:8688/t1
请求结果404
error.log日志输出*890 open() "/usr/local/nginx/pages/t5" failed (2: No such file or directory)
access.log日志输出{"SN":"31"
最终请求地址host:8688/t5
结论

1.server或location层ngx_http_rewrite_module模块相关的指令正常情况下按照配置顺序依次执行;

2.server层执行break后,该层级所有跟ngx_http_rewrite_module模块相关的指令都不再执行,但不影响location层ngx_http_rewrite_module模块相关指令的执行。

3.location层执行完break指令后,会直接终止整个请求处理过程(后续其它指令也不再被执行),且请求不会被重定向,nginx根据最终请求路径(此时不再匹配location)将请求结果返回给客户端


测试5

server {···rewrite /t1 /t2;rewrite /t2 /t3;set $sn 1;                # 该变量最终值将记录到access.log中。if ($sn = 1) {set $sn 2;break;set $sn 3;}location /t2 {rewrite /t2 /test.html;}location /t3 {rewrite /t3 /t4;return 502;if ($sn = 2) {set $sn 31;rewrite /t4 /t5;break;set $sn 32;rewrite /t5 /t6;}set $sn 33;rewrite /t5 /p1;rewrite /t6 /p2;}location /t5 {set $sn 51;rewrite /t5 /p3;}location /t6 {set $sn 61;rewrite /t6 /p4;}location / {index  index.html index.htm;}
}
请求地址host:8688/t1
请求结果502
error.log日志输出
access.log日志输出{"SN":"2"
最终请求地址
结论location层执行完return后,请求处理过程会立刻终止,并将指定code返回给客户端。

 测试6

server {···rewrite /t1 /t2;rewrite /t2 /t3;set $sn 1;                # 该变量最终值将记录到access.log中。if ($sn = 1) {set $sn 2;break;set $sn 3;}location /t2 {rewrite /t2 /test.html;}location /t3 {if ($sn = 2) {rewrite /t3 /p1;rewrite /p1 /t4;}if ($sn = 3) {return 500;}}location /t5 {rewrite /t5 /t6;}location /t4 {rewrite /t4 /t5;}location /t6 {set $sn 61;rewrite /t6 /p2;}location / {index  index.html index.htm;}
}
请求地址host:8688/t1
请求结果404
error.log日志输出*897 open() "/usr/local/nginx/pages/p2" failed (2: No such file or directory)
access.log日志输出{"SN":"61"
最终请求地址host:8688/p2
结论

1.server指令按序执行完毕后,根据URI匹配location,如果匹配到就进入对应location再按序执行该模块下的指令。执行完毕后,如果URI被重写就继续匹配location,直到找到最终请求路径。循环匹配location这个过程的循环次数不得超过10次。


测试7

server {···rewrite /t1 /t2;rewrite /t2 /t3;set $sn 1;                # 该变量最终值将记录到access.log中。if ($sn = 1) {set $sn 2;break;set $sn 3;}location /t2 {rewrite /t2 /test.html;}location /t3 {rewrite /t3 /t4;return 502;if ($sn = 2) {set $sn 31;rewrite /t4 /t5 last;break;set $sn 32;rewrite /t5 /t6;}set $sn 33;rewrite /t5 /p1;rewrite /t6 /p2;}location /t5 {set $sn 51;rewrite /t5 /p3;}location /t6 {set $sn 61;rewrite /t6 /p4;}location / {index  index.html index.htm;}
}
请求地址host:8688/t1
请求结果404
error.log日志输出*897 open() "/usr/local/nginx/pages/p3" failed (2: No such file or directory)
access.log日志输出{"SN":"51"
最终请求地址host:8688/p3
结论


请求地址host:8688/t1
请求结果
error.log日志输出
access.log日志输出{"SN":""
最终请求地址
结论
http://www.hkea.cn/news/435524/

相关文章:

  • 西安哪里有做网站的小学生收集的新闻10条
  • 做游戏网站有几个要素seo网站关键词优化报价
  • 蓬业东莞网站建设技术支持东莞做网站公司首选
  • 网站版式设计获客渠道有哪些
  • 今日军事新闻简短扬州seo优化
  • 国外好看的教育类网站模板下载东莞做网站最好的是哪家
  • 微擎与wordpress快速优化seo软件推广方法
  • 英文网站设计哪家好免费网站搭建
  • 网站建设公司 销量深圳谷歌seo公司
  • 新蔡哪有做网站建设的全球疫情今天最新消息
  • 怎么做平台网站百度seo报价方法
  • 帮人做网站 怎么收费怎么用网络推广
  • 网站排名优化建设百度广告投放技巧
  • 文件服务器网站搭建教程好的竞价托管公司
  • 黑龙江省城乡和住房建设厅网站首页百度链接地址
  • 网站模板修改工具专业seo关键词优化
  • 口碑好的句容网站建设yahoo搜索
  • 深圳网站建设外贸公司价格网络营销的背景和意义
  • 长春网站建设硕成传媒seo快速排名优化公司
  • web网站开发能使用c 吗免费建立个人网站申请
  • 织梦网站修改教程视频网站优化培训学校
  • 南沙区交通和建设局网站中国十大网络销售公司
  • 免费建设网站的方法百度网址大全 官网
  • 手机网站设计制作公司微信推广费用一般多少
  • 建设网站需要什么注册域名费用一般多少钱
  • 女性门户网站源码百度指数功能有哪些
  • 怎么帮公司做网站建设谷歌搜索引擎免费入口 香港
  • 请写出网站建设前期需要做的准备外贸定制网站建设电话
  • 南京门户网站建设网络营销优秀案例
  • 2012服务器如何做网站周口网络推广哪家好