nginx location介绍 Nginx 中的 Location 指令 是NginxHttpCoreModule中重要指令。Location 指令,是用来为匹配的 URI 进行配置,URI 即语法中的”/uri/”,可以是字符串或正则表达式。但如果要使用正则表达式,则必须指定前缀。 nginx location语法 基本语法:location [=|~|~*|^~] /uri/ { … } = 严格匹配。如果这个查询匹配,那么将停止搜索并立即处理此请求。 ~ 为区分大小写匹配(可用正则表达式) ~* 为不区分大小写匹配(可用正则表达式) !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 ^~ 如果把这个前缀用于一个常规字符串,那么告诉nginx 如果路径匹配那么不测试正则表达式。 Location语法语法:location [=|~|~*|^~] /uri/ { … } 注: 1、~ 为区分大小写匹配 2、~* 为不区分大小写匹配 3、!~和!~*分别为区分大小写不匹配及不区分大小写不匹配 示例一: 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
|