Nginx服务器配置之location语法分析

location基本语法:location [=|~|~*|^~] /uri/ { … }

= 严格匹配。如果这个查询匹配,那么将停止搜索并立即处理此请求。

~ 为区分大小写匹配(可用正则表达式)

!~为区分大小写不匹配

~* 为不区分大小写匹配(可用正则表达式)

!~*为不区分大小写不匹配

^~ 如果把这个前缀用于一个常规字符串,那么告诉nginx 如果路径匹配那么不测试正则表达式。

实例讲解:

location = / {
  # 严格匹配 / 查询,后面不能有其他字符(不常用)。
}
location / {
  # 匹配任何查询,因为所有请求都已 / 开头,正则表达式规则和块规则将被优先查询匹配。
}
location ^~ /images/ {
  # 匹配任何已 /images/ 开头的任何查询并且停止搜索,任何正则表达式将不会被测试。
}
location ~*.(gif|jpg|jpeg)$ {
  # 匹配任何已 gif、jpg 或 jpeg 结尾的请求。
}
location ~*.(gif|jpg|swf)$ {
   valid_referers none blocked www1.site.com www2.site.com;
   if ($invalid_referer) {
   #防盗链
  rewrite ^/ http://$host/logo.png;
   }
 }
时间: 2024-10-09 16:16:37

Nginx服务器配置之location语法分析的相关文章

Nginx配置中Location的匹配规则

Location匹配的url的语法规则: location [=|~|~*|^~] /uri/ { … } = 表示精确匹配 ~ 表示区分大小写的正则匹配 ^~ 表示以某个常规字符串开头的url即可: ~* 表示不区分大消息的正则匹配 !~(*!~)表示不区分大小写不匹配的正则 / 通配符,任何请求都能匹配到这个location,如果有任何其他location可以匹配,则会覆盖该location 匹配顺序: 1)先匹配普通url,在匹配正则 2)“普通 location ”的匹配规则是“最大前缀

Nginx 配置指令location 匹配符优先级和安全问题【转】

Nginx配置指令location匹配符优先级和安全问题 使用nginx 很久了,它的性能高,稳定性表现也很好,得到了很多人的认可.特别是它的配置,有点像写程序一样,每行命令结尾一个";"号,语句块用"{}"括起来.配制好,直接nginx -t 检查配制情况,配制成功,直接运行:service nginx reload.服务器没有任何宕机情况下,实现平稳修改配置.最近一直在做location 配置,遇到优先级别问题(如果配置不当可能存在安全隐患哦),以下是个人学习一

Nginx 指令之location

Nginx 指令之location 指令: 语法规则: `location [=|~|~*|^~] /uri/ { - }`` 规则解释: = 表示精确匹配 ^~ 表示uri以某个常规字符串开头,理解为匹配 url路径即可. ~ 表示区分大小写的正则匹配 ~* 表示不区分大小写的正则匹配 !~和!~* 分别为区分大小写不匹配及不区分大小写不匹配 的正则 / 通用匹配,任何请求都会匹配到. @ 定义一个命名的 location,使用在内部定向时,例如 error_page, try_files n

【Nginx】Nginx服务器配置调优

1.Nginx服务器配置调优 5.设置nginx全局参数 vi /usr/local/nginx/conf/nginx.conf #编辑 worker_processes 2; # 工作进程数,为CPU的核心数或者两倍 events { use epoll; #增加 worker_connections 65535; #修改为65535,最大连接数. } #############以下代码在http { 部分增加与修改############## server_names_hash_bucket

Nginx教程(四) Location配置与ReWrite语法

1 Location语法规则 1.1 Location规则 语法规则: location [=|~|~*|^~] /uri/ {- } 首先匹配 =,其次匹配^~,其次是按文件中顺序的正则匹配,最后是交给 /通用匹配.当有匹配成功时候,停止匹配,按当前匹配规则处理请求. 符号 含义 = = 开头表示精确匹配 ^~ ^~开头表示uri以某个常规字符串开头,理解为匹配 url路径即可.nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(

nginx服务器配置多域名

nginx服务器支持配置多站点,我们可以通过配置子域名让你的一个域名下放置多个项目. 那么如何实现这个过程呢? 网络上的许多方案,有些写的过于繁杂,有些则是配置有误,或者说,有些配置项是要根据自己的主机实际环境来配置的. 一.假设你的项目路径是放在 /home/wwwroot/路径下,nginx的安装路径是 /usr/local/nginx/ 目录下 二.安装好nginx都会有默认的配置文件.文件路径为/usr/local/nginx/conf/nginx.conf 三.现在你需要将你的项目映射

Nginx里的location以及如何用户认证

Nginx玩的就是"页面输出",把新闻的页面放到新闻的文件夹里,把体育的页面放到体育的文件夹里,把动漫的页面放到动漫的文件夹里,然后搭配好各种正则搜寻,这样用户在浏览器的地址栏里输入对应的地址,服务器就回到相应的文件夹里去把网页呈现出来. location的定位 服务器里的nginx.conf配置如图: 这个域名的server_name是localhost.location /里的/指的是 /usr/local/nginx/html 这个目录,此时,在/usr/local/nginx/

转:Nginx配置指令location匹配符优先级和安全问题

转:http://www.jb51.net/article/47761.htm 使用nginx 很久了,它的性能高,稳定性表现也很好,得到了很多人的认可.特别是它的配置,有点像写程序一样,每行命令结尾一个";"号,语句块用"{}"括起来. 配制好,直接nginx -t 检查配制情况,配制成功,直接运行:service nginx reload .服务器没有任何宕机情况下,实现平稳修改配置 最近一直在做location 配置,遇到优先级别问题(如果配置不当可能存在安全

Nginx服务器配置沃通免费SSL证书部署HTTPS网站

本文讲解服务器配置SSL证书部署HTTPS网站. 环境是阿里云服务器ECS ,系统是CentOS6 64bit,Web服务器是Nginx.需要SSL模块的支持. 签发SSL证书的CA机构是 沃通电子认证服务有限公司 WoSign CA Limited. 部署HTTPS网站一般需要有服务器的控制权,(云)主机.VPS均可,虚拟主机基本上做不到.具体步骤如下: 方法/步骤 向CA机构申请SSL证书 SSL证书的价格一般较贵,申请之前可以去网上搜索一下,最好选择信任度高.浏览器和移动终端支持较好的机构