你好,欢迎访问我的博客!登录
当前位置:首页 - 服务器问题 - 正文 SEO教程学习网

Nginx服务器中的location配置详解

2019-02-27服务器问题seo学习网25°c
A+ A-
这篇文章主要介绍了Nginx服务器中的location配置详解,包括location的匹配顺序等基本概念,需要的朋友可以参考下

语法
location  [=|~|~*|^~] /uri/  {...}

规则
= : 表示精确的URI匹配(有兴趣的同学可以看一下url和uri的区别)
~: 表示区分大小写的正则匹配
~*:表示不区分大小写的正则匹配
!~ && !~*:表示区分大小写不匹配的正则和不区分大小写的不匹配的正则
/:通用匹配,任何请求都会匹配到

location匹配目标
location匹配测试只使用请求URI的部分,而不使用参数部分。(原因:参数的写法太多,无法精确匹配)

location匹配顺序
多个location配置的前提下,location的匹配顺序(未验证,嘿嘿,google上搜的)
1.首先匹配=
2.其次匹配^~
3.再其次按照配置文件的顺序进行正则匹配、
4.最后是交给/进行通用匹配
注意:
当有匹配成功时,立刻停止匹配,按照当前匹配规则处理请求

演示实例

nginx 配置文件,自下到上分为三种层次分明的结构:
 |    http block        the protocol level
 |    server block        the server level
 V    location block        the requested URI

Nginx 允许用户定义 Location block ,并指定一个匹配模式(pattern)匹配特定的 URI。除了简单的字符串(比如文件系统路径),还允许使用更为复杂的匹配模式(pattern)。
Location block 的基本语法形式是:

  location [=|~|~*|^~|@] pattern { ... }

[=|~|~*|^~|@] 被称作 location modifier ,这会定义 Nginx 如何去匹配其后的 pattern ,以及该 pattern 的最基本的属性(简单字符串或正则表达式)。

关于 location modifier

1. =

这会完全匹配指定的 pattern ,且这里的 pattern 被限制成简单的字符串,也就是说这里不能使用正则表达式。
Example:

server {  server_name jb51.net;  location = /abcd {  […]  }}

匹配情况:
    http://jb51.net/abcd        # 正好完全匹配
    http://jb51.net/ABCD        # 如果运行 Nginx server 的系统本身对大小写不敏感,比如 Windows ,那么也匹配
    http://jb51.net/abcd?param1?m2    # 忽略查询串参数(query string arguments),这里就是 /abcd 后面的 ?param1?m2
    http://jb51.net/abcd/    # 不匹配,因为末尾存在反斜杠(trailing slash),Nginx 不认为这种情况是完全匹配
    http://jb51.net/abcde    # 不匹配,因为不是完全匹配

2. (None)
可以不写 location modifier ,Nginx 仍然能去匹配 pattern 。这种情况下,匹配那些以指定的 patern 开头的 URI,注意这里的 URI 只能是普通字符串,不能使用正则表达式。
Example:

server {  server_name website.com;  location /abcd {  […]  }}

匹配情况:

Nginx服务器中的location配置详解

这篇文章主要介绍了Nginx服务器中的location配置详解,包括location的匹配顺序等基本概念,需要的朋友可以参考下 语法 location [=|~|~*|^~] /uri/ {...} 规则 = : 表示精确的URI匹配(有兴趣的同学可以看一下url和uri的区别) ~: 表示区分大小写的正则匹配 ~相关推荐: nginx超时设置详细介绍nginx使用replace-filter-nginx-module实现内容替换的示例Centos 通过 Nginx 和 vsftpd 构建图片服务器的教程(图文)Nginx服务器配置性能优化方案Nginx 的多站点配置方案nginx访问日志并删除指定天数前的日志记录配置方法python实现分析apache和nginx日志文件并输出访客ip列表的方法Linux下查看nginx apache mysql php的编译参数禁止IP访问网站的多种方法分享(linux,php,nginx,apache)ubuntu10.04配置 nginx+php-fpm模式的详解CentOS 7.0编译安装lnmp教程(Nginx1.6.0+MySQL5.6.19+PHP5.5.14)Nginx启用GZIP压缩网页传输方法(推荐)安装配置php-fpm来搭建Nginx+PHP的生产环境centos服务器下nginx图片防盗链设置方法Nginx+lua 实现调用.so文件在 Ubuntu 16.04 为 Nginx 服务器安装 LEMP 环境(MariaDB,PHP安装Nginx+Lua开发环境CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法 ======================================================================================================网站被劫持检测、网站监控站群批量SEO查询六大搜索引擎 模拟蜘蛛批量替换工具 - 多行批量替换服务器专用下载工具iis日志分析工具批量PING,服务器批量添加网卡IP小工具远程同步备份工具整站下载工具批量远程桌面连接工具iis网站批量管理
  选择分享方式
未定义标签

发表评论

选填

必填

必填

选填

请拖动滑块解锁
>>


  用户登录