您的位置:首页 > 运维架构 > Nginx

nginx location配置详解

2016-09-23 14:11 204 查看
location在nginx中的使用这里我就不介绍了,下面我主要给各位介绍location语法与使用说明,有需要了解的同学可参考。
nginx location介绍

Nginx 中的 Location 指令 是NginxHttpCoreModule中重要指令。Location 指令,是用来为匹配的 URI 进行配置,URI 即语法中的”/uri/”,可以是字符串或正则表达式。但如果要使用正则表达式,则必须指定前缀。

nginx location语法

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

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

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

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

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

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

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

注:

1、~   为区分大小写匹配

2、~* 为不区分大小写匹配

3、!~和!~*分别为区分大小写不匹配及不区分大小写不匹配

示例一:

location  / { }

匹配任何查询,因为所有请求都以 / 开头。但是正则表达式规则将被优先和查询匹配。

示例二:

 代码如下复制代码
location =/ {}
仅仅匹配/

示例三:

 代码如下复制代码
location ~* .(gif|jpg|jpeg)$ {

rewrite .(gif|jpg)$ /logo.png;


注:不区分大小写匹配任何以gif,jpg,jpeg结尾的文件

nginx location应用实例

 代码如下复制代码
location = / {

 # 只匹配 / 查询。

 

}location / {

 # 匹配任何查询,因为所有请求都已 / 开头。但是正则表达式规则和长的块规则将被优先和查询匹配。

 

}location ^~ /images/ {

 # 匹配任何已 /images/ 开头的任何查询并且停止搜索。任何正则表达式将不会被测试。

 

}location ~* .(gif|jpg|jpeg)$ {

 # 匹配任何已 gif、jpg 或 jpeg 结尾的请求。

 

}location ~* .(gif|jpg|swf)$ {

  valid_referers none blocked start.igrow.cn sta.igrow.cn;

  if ($invalid_referer) {

  #防盗链

  rewrite ^/ http://$host/logo.png;
  }

}

location ~* .(js|css|jpg|jpeg|gif|png|swf)$ {

if (-f $request_filename) {

   #根据文件类型设置过期时间

   expires    1h;

   break;

}

}

location ~* .(txt|doc)${ 

 #禁止访问某个目录

    root /data/www/wwwroot/linuxtone/test;

    deny all;

}

++ 一些可用的全局变量
$args

$content_length

$content_type

$document_root

$document_uri

$host

$http_user_agent

$http_cookie

$limit_rate

$request_body_file

$request_method

$remote_addr

$remote_port

$remote_user

$request_filename

$request_uri

$query_string

$scheme

$server_protocol

$server_addr

$server_name

$server_port

$uri
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nginx