nginxlocation详解.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
nginxlocation详解

nginx 配置字段:location 解释 2012-05-02 10:50:11| 分类: webServer|举报|字号 订阅 nginx location可以根据字符串或者正则表达式来进行匹配 如果要使用正则表达式,则必须以“~”或者~*开头 ~表示区分大小写 ~*表示不区分大小写 匹配过程如下: 第一步:进行字符串匹配,找到最合适的那一个 第二步:进行正则表达式匹配,找到匹配上的第一个 第三步:如果第二步匹配上了,则用第二步匹配的结果,否则用第一步匹配的结果 从上面可以看出来,正则表达式的优先级要高一些 上面的匹配过程的例外: 1.可以用=加在字符串前面,表示完全匹配,如果过来的url与某个字符串完全匹配(前面有=),则搜索停止。因此经常访问/,则用=/可以加快一点点处理速度(因为它停止了nginx配置中的其他搜索) 2.如果只想用字符串匹配,则在字符串前加“^~”,则一旦字符串匹配上了,就不会再进行正则表达式匹配 综上,location的匹配规则如下: 1.先进行=的完全匹配,如果匹配上,则搜索停止 2.进行字符串匹配,如果匹配上了,但是没有^~,则进行第3步;如果匹配上了,而且有^~,则搜索停止; 3.正则表达式匹配,如果匹配上了,则搜索停止;如果没有匹配上,则进行第4步; 4.此时第3步没有匹配上,则拿第2步匹配的结果来进行,如果第2步也没有匹配上,则跳到错误页面(404) location = / { # 只匹配/ [ configuration A ] } location / { # 匹配一切以/为开头的查询,但是正则表达式(优先级更高),和 # 更长的字符串匹配(更切合查询)将优先匹配 [ configuration B ] } location ^~ /images/ { # 匹配以/images/开头的查询,因为有^~,将不会搜索正则表达式 [ configuration C ] } location ~* \.(gif|jpg|jpeg)$ { # 匹配一切以.gif .jpg .jpeg为结尾的查询,然后如果查询以/images/开头, # 以“.gif .jpg .jpeg”结尾,还是会匹配 configuration C [ configuration D ] 举例查询 / - configuration A /documents/document.html - configuration B /images/1.gif - configuration C /documents/1.jpg - configuration D -------------------------------------------------------------------------------------------------------------------------------- 实际测试,下面为一个完整的nginx域名配置,使用return来进行区分匹配上哪个location server{ listen 80; server_name ; charset gbk; access_log logs/want_access.log main; error_log logs/want_error.log; location = / { return 100;} location / { return 101;} location ~ /images/ { return 102;} location ^~ /images/ { return 103;} location ~* \.(gif|jpg|jpeg)$ {return 105; } location /a {return 106;} location ~ /a { return 107; } } 解释:先进行=的完全匹配,如果匹配上,则搜索停止 ~# wget / --2012-01-05 16:09:23-- / 正在解析主机 ... 正在连接 ||:80... 已连接。 已发出 HTTP 请求,正在等待回应... 100 2012-01-05 16:09:23 错误 100:(没有描述)。 解释:正则表达式没有匹配上,就是用字符串匹配 # wget /document/document.html --2012-01-05 16:12:03

文档评论(0)

wnqwwy20 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档