|
|
51CTO旗下网站
|
|
移动端

2.6 Locations—where,when,how

《精通Nginx(第2版)》第2章配置指南,在本章,我们看到了如何构建Nginx的配置文件。模块化的本质值得思考,从某种意义上讲,Nginx本身也是模块化的。本节为大家介绍Locations—where,when,how。

作者:李红军 译来源:人民邮电出版社|2017-08-28 21:05

2.6 Locations—where,when,how

location指令可以用在虚拟服务器server部分,并且意味着提供来自客户端的URI或者内部重定向访问。除少数情况外,location也可以被嵌套使用,它们被作为特定的配置尽可能地处理请求。

location定义如下。

  1. location [modifier] uri {...} 

或者是命名location。

  1. location @name {…} 

命名location仅对内部访问重定向,在进入一个location之前,它会保留被请求的URI部分。命名location只能够在server级别定义。

表2-7中的修饰符会影响location的处理。

表2-7location修饰符

当一个请求进入时,URI将会被检测匹配一个***的location。

没有正则表达式的location被作为***的匹配,独立于含有正则表达式的location顺序。

在配置文件中按照查找顺序进行正则表达式匹配。在查找到***个正则表达式匹配之后结束查找。由这个***的location提供请求处理。

这里比较匹配描述的是解码URI,例如,在URI中的 "%20",将会匹配location中的 " "(空格)。

命名location仅可以在内部重定向的请求中使用。表2-8中的指令仅在location中使用。

表2-8仅用于location的指令

另外,http部分的其他指令也可以在location中指定,附录A指令参考有完整列表。

指令try_files在这里也值得一提,它也可以用在server部分,但是最常见的还是在location部分中。try_files指令将会按照给定它的参数列出顺序进行尝试,***个被匹配的将会被使用。它经常被用于从一个变量去匹配一个可能的文件,然后将处理传递到一个命名location,如下面的示例所示。

  1. location / {  
  2.  try_files $uri $uri/ @mongrel;  
  3. }  
  4. location @mongrel {  
  5.  proxy_pass http://appserver;  

在这里有一个隐含的目录索引,如果给定的URI作为一个文件没有被找到,那么处理将会通过代理被传递到appserver。我们将会在本书的其他部分讨论如何***地使用location、try_files和proxy_pass来解决特定的问题。

除以下前缀外,locations可以被嵌套。

具有 "=" 前缀。

命名location。

***实践表明正则表达式location被嵌套在基于字符串的location内,如下面的示例所示。

  1. # first, we enter through the root  
  2. location / {  
  3.  # then we find a most-specific substring  
  4.  # note that this is not a regular expression  
  5.  location ^~ /css {  
  6.   # here is the regular expression that then gets matched  
  7.   location ~* /css/.*\.css$ {  
  8.   }  
  9.  }  


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

16招轻松掌握PPT技巧

16招轻松掌握PPT技巧

GET职场加薪技能
共16章 | 晒书包

289人订阅学习

20个局域网建设改造案例

20个局域网建设改造案例

网络搭建技巧
共20章 | 捷哥CCIE

645人订阅学习

WOT2019全球人工智能技术峰会

WOT2019全球人工智能技术峰会

通用技术、应用领域、企业赋能三大章节,13大技术专场,60+国内外一线人工智能精英大咖站台,分享人工智能的平台工具、算法模型、语音视觉等技术主题,助力人工智能落地。
共50章 | WOT峰会

0人订阅学习

读 书 +更多

程序设计实践双语版

程序设计实践并不只是写代码。程序员必须评论各种折衷方案,在许多可能性之中做出选择、排除错误、做测试和改进程序性能,还要维护自己或其...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客