location语法

location语法格式

  1. location [=|~|~*|^~] uri {
  2. ....
  3. }
  4. location [=|~|~*|^~] uri {....}
  5. 指令 匹配标识 匹配的网站地址 匹配URI后要执行的配置段

nginx location匹配规则

  1. location匹配命令
  2. ~ # 波浪线表示执行一个正则匹配,区分大小写
  3. ~* # 表示执行一个正则匹配,不区分大小写
  4. ^~ # ^~表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录
  5. = # 进行普通字符精确匹配
  6. @ # "@" 定义一个命名的 location,使用在内部定向时,例如 error_page, try_files
location 匹配的优先级(与location在配置文件中的顺序无关)
= 精确匹配会第一个被处理。如果发现精确匹配,nginx停止搜索其他匹配。
普通字符匹配 正则表达式规则和长的块规则将被优先和查询匹配,也就是说如果该项匹配还需去看有没有正则表达式匹配和更长的匹配。
^~ 则只匹配该规则,nginx停止搜索其他匹配,否则nginx会继续处理其他location指令。
最后匹配理带有""和"*"的指令 如果找到相应的匹配,则nginx停止搜索其他匹配;当没有正则表达式或者没有正则表达式被匹配的情况下,那么匹配程度最高的逐字匹配指令会被使用。

~ 与~* 的区别

location字段 说明
~ 匹配内容区分大小写
~* 匹配内容不区分的小写
!~ 取反
^~ 但多个匹配同时存在,优先匹配 ^~匹配的内容;不做正则表达式的检查 (优先处理)

location官方示例

  1. location = / {
  2. [ configuration A ]
  3. }
  4. location / {
  5. [ configuration B ]
  6. }
  7. location /documents/ {
  8. [ configuration C ]
  9. }
  10. location ^~ /images/ {
  11. [ configuration D ]
  12. }
  13. location ~* \.(gif|jpg|jpeg)$ {
  14. [ configuration E ]
  15. }
  • 说明
  1. "/" 请求将匹配配置A
  2. "/index.html" 请求将匹配配置B
  3. "/documents/document.html" 请求将匹配配置C
  4. "/images/1.gif" 请求将匹配配置D
  5. "/documents/1.jpg" 请求将匹配配置E.

按匹配顺序: nginx location匹配规则

  1. location = / {
  2. # 只匹配"/".
  3. [ configuration A ]
  4. }
  5. location ^~ /images/ {
  6. # 匹配任何以 /images/ 开始的请求,并停止匹配 其它location
  7. [ configuration C ]
  8. }
  9. location ~* .(gif|jpg|jpeg)$ {
  10. # 匹配以 gif, jpg, or jpeg结尾的请求.
  11. # 但是所有 /images/ 目录的请求将由 [Configuration C]处理.
  12. [ configuration D ]
  13. }
  14. location / {
  15. # 匹配任何请求,因为所有请求都是以"/"开始
  16. # 但是更长字符匹配或者正则表达式匹配会优先匹配
  17. [ configuration B ]
  18. }
  • 不同uri及特殊字符组合匹配的顺序说明

测试location的访问

nginx服务企业应用

修改返回值

  1. server {
  2. listen 80;
  3. server_name www.maotai.com maotai.com;
  4. root html;
  5. location = / {
  6. return 401;
  7. }
  8. location ^~ /images/ {
  9. return 402;
  10. }
  11. location ~* \.gif|jpg|jpeg$ {
  12. return 403;
  13. }
  14. location /documents/ {
  15. return 404;
  16. }
  17. location / {
  18. return 502;
  19. }
  20. }
  1. [root@n1 nginx]# curl -I -w "%{http_code}\n" -o /dev/null -s www.maotai.com
  2. 401
  3. [root@n1 nginx]# curl -I -w "%{http_code}\n" -o /dev/null -s www.maotai.com/images/1.jpg
  4. 402
  5. [root@n1 nginx]# curl -I -w "%{http_code}\n" -o /dev/null -s www.maotai.com/documents/ss.jpg
  6. 403
  7. [root@n1 nginx]# curl -I -w "%{http_code}\n" -o /dev/null -s www.maotai.com/documents/
  8. 404
  9. [root@n1 nginx]# curl -I -w "%{http_code}\n" -o /dev/null -s www.maotai.com/documents
  10. 502

[nginx]location语法的更多相关文章

  1. Nginx Location 语法,与简单配置[转]

    一、介绍Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”, 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器 ...

  2. nginx Location 语法基础知识

    URL地址匹配是Nginx配置中最灵活的部分 Location 支持正则表达式匹配,也支持条件匹配,用户可以通过location指令实现Nginx对动丶静态网页的过滤处理. Nginx locatio ...

  3. nginx location 语法

    location 语法location 有”定位”的意思, 根据Uri来进行不同的定位.在虚拟主机的配置中,是必不可少的,location可以把网站的不同部分,定位到不同的处理方式上.比如, 碰到.p ...

  4. 附001.Nginx location语法规则

    一 location规则 1.1 location语法 基本语法: location [=|~|~*|^~]/uri/{...} 修饰符释义: 1 = #表示精确严格匹配,只有请求的url路径与后面的 ...

  5. nginx location语法使用说明

    语法规则: location [=|~|~*|^~] /uri/ { … } = 开头表示精确匹配 ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可.nginx不对url做编码,因 ...

  6. nginx location语法解释

    1.没有修饰符 表示:必须以指定模式开始,如:              默认模式 server { server_name baidu.com; location /abc { …… } } htt ...

  7. nginx location配置说明

    nginx location语法规则:location  [=|~|~*|^~]  /uri/  { … } nginx的location匹配的变量是$uri 规则优先级 = 高于 ^~ 高于 ~* ...

  8. Linux nginx 配置 location 语法 正则表达式

    location语法:location [=|~|~*|^~] /uri/ { - }默认:否上下文:server这个指令随URL不同而接受不同的结构.你可以配置使用常规字符串和正则表达式.如果使用正 ...

  9. nginx与location语法详解

    Location语法优先级排列 匹配符 匹配规则 优先级 = 精确匹配 ^~ 以某个字符串开头 ~ 区分大小写的正则匹配 ~* 不区分大小写的正则匹配 !~ 区分大小写不匹配的正则 !~* 不区分大小 ...

随机推荐

  1. python之模块 os

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块 os import os ''' FUNCTIONS abort(...)#暂不了解 a ...

  2. PHP 调用ffmpeg

    PHP 调用ffmpeg linux ffmpeg安装,tar文件安装一直出错,一直无语 php-ffmpeg安装, tar文件安装也一直出错,一直无语 最后直接在系统上安装ffmpeg sudo a ...

  3. Arduino和C51之串口通信

    技术:51单片机.Arduino.串口通信   概述 本文主要讲解串口通信技术的使用方法,并通过串口点灯实验介绍了51单片机和Arduino串口的使用,为初学者学习串口知识提供帮助 详细 代码下载:h ...

  4. GNU Linux系统变量(sysctl配置命令)综合使用

    查看全部kernel变量的值 sysctl -a 怎样查看一个系统变量的值 1).cat /proc/sys/net/ipv4/ip_local_port_range 32768 61000 2).s ...

  5. ubuntu_thunder

    Thunder 出自Ubuntu中文 File:Http://forum.ubuntu.org.cn/download/file.php?id=123020&mode=view/wine-th ...

  6. 手动搭建latex公式渲染服务器

    latex公式渲染有两种类型,一种是HTML形式展示公式,另一种是图片形式展示公式.如果是HTML形式展示公式,渲染是在前端完成的,一般会比较缓慢.知乎采取的方式是以图片形式展示公式.codecogs ...

  7. DHCP工作过程的六个主要步骤

    对于学习DHCP来说,很重要的一部分就是对于DHCP工作过程的理解. DHCP分为两个部分:一个是服务器端,另一个是客户端. 所有客户机的IP地址设定资料都由DHCP服务器集中管理,并负责处理客户端的 ...

  8. ubuntu下安装配置minicom(解决默认的端口/dev/tty8,改不过来的问题)

    Minicom是linux下串口通信的软件,下面讲下ubuntu Minicom的安装和配置. 安装: sudo apt-get install minicom 或在新立得软件包管理器中搜索“mini ...

  9. numpy 中的axis轴问题

    在numpy库中,axis轴的问题比较重要,不同的值会得到不同的结果,为了便于理解,特此将自己的理解进行梳理 为了梳理axis,借助于sum函数进行! a = np.arange(27).reshap ...

  10. php性能分析工具xhprof

    安装方法: wget http://pecl.php.net/get/xhprof-0.9.x.tgz cp xhprof-0.9.x.tgz /home/www/xhprof.tgz tar zxv ...