nginx 简介
Nginx 中的指令是最重要的指令之一。指令用于配置匹配的 URI。URI 在语法上是“/uri/”,可以是字符串,也可以是正则表达式。但如果要使用正则表达式,则必须指定前缀。
nginx 语法
基本语法:[=|~|~*|^~] /uri/ { … }
= 严格匹配。如果此查询匹配,则停止搜索并立即处理请求。
~ 区分大小写匹配(可使用正则表达式)
~* 不区分大小写匹配(可使用正则表达式)
!~ 和 !~* 分别是区分大小写的不匹配和不区分大小写的不匹配。
^~ 如果与常规字符串一起使用,这会告诉 nginx 在路径匹配时不要测试正则表达式。
nginx 应用程序示例
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; }
以下为补充:
Nginx 基本语法
:[=|~|~*|^~] /uri/ { … }
语法:[=|~|~*|^~] /uri/ { … }
:不
默认值:否
:
语境:
URI 上的这个。可以同时使用 和 。要使用 ,必须使用 ~* 进行大小写匹配,使用 ~ 进行大小写匹配。
此指令根据 URL 接受不同的结构。您可以将其配置为使用正则字符串和正则表达式。如果使用正则表达式,则必须使用 ~* 前缀来选择不区分大小写的匹配,或使用 ~ 来选择区分大小写的匹配。
对于查询,将首先找到与查询匹配的,并且按大小写顺序排列 - 将使用最匹配的(请参阅下文关于 nginx 如何做到这一点)。 ,按文件中的顺序排列。 第一个与查询匹配的将停止。 如果没有找到,则使用来自的。
要确定哪个指令与特定指令匹配,首先测试正则字符串。正则字符串匹配以请求开头并且区分大小写,将使用最具体的匹配(请参阅下文了解 nginx 如何确定这一点)。然后按照配置文件中的顺序测试正则表达式。当找到第一个匹配的正则表达式时,搜索停止。如果未找到匹配的正则表达式,则使用正则字符串的结果。
有两种方法可以实现这一点。第一种是使用“=”,它只用于精确查询。如果查询,则停止并且是。对于,如果是“/”,则使用“= /”将得到这个。
有两种方法可以修改此行为。第一种方法是使用“=”前缀,它只会执行严格匹配。如果查询匹配,则停止搜索并立即处理请求。示例:如果“/”请求频繁发生,则使用“=/”将加快此请求的处理速度。
是使用 ^~。它与 一起使用,并告诉 nginx 不检查路径是否匹配。对于 ,如果查询带有 // - all 则“ ^~ //”将停止。
第二种是使用 ^~ 前缀。将此前缀与正则字符串一起使用会告诉 nginx,如果路径匹配,则不要测试正则表达式。
要知道 NGINX 不会执行 URL ,所以如果你有一个像“//%20/test”这样的 URL ,那么请使用“// /test”来。
重要的是,NGINX 在没有 URL 编码的情况下进行比较,因此如果您有一个 URL 链接“//%20/test”,那么请使用“/ /test”限定。
至 ,其顺序如下:
总而言之,指令按以下顺序被接受:
1. 查找与查询匹配的 =。如果找到,则停止。
1. 以 = 为前缀的指令与此查询完全匹配。如果找到,则停止搜索。
2. 所有带有 的,先匹配。如果此匹配使用了 ^~ ,则停止。
2. 对于剩余的常规字符串,较长的字符串优先。如果匹配使用 ^~ 前缀,则搜索停止。
3. 按照文件中的顺序。
3.正则表达式,按照配置文件中的顺序。
4. 如果 #3 匹配,则使用 #3。否则,使用 #2 的匹配。
4. 如果步骤 3 匹配成功,则使用该结果。否则,使用第二步的匹配结果。
:
例子:
=/{
# 查询/仅。
# 仅匹配/查询。
[ A ]
/{
# 任何查询,因为所有查询都以/开头,但是
# 并且任何
# 第一的。
# 匹配任何查询,因为所有请求都以 / 开头。但正则表达式规则和长块规则将优先匹配查询。
[B]
^~ // {
# 任何带有 // 和 暂停 的查询,
# 所以不会。
# 匹配任何以 // 开头的查询并停止搜索。任何正则表达式都不会被测试。
[C]
~*“。(gif|jpg|jpeg)${
# gif、jpg 或 jpeg 中的任何一个。,全部
# 至 // 将由
#C。
# 匹配以 gif、jpg 或 jpeg 结尾的任何请求。但是,对 // 目录的所有请求都将使用 C。
[D]
:
示例请求:
/ -> 一个
//.html -> B
//1.gif -> C
//1.jpg -> D
请注意,您可以按任何顺序排列这 4 个,其结果相同。
注意:以任何顺序定义这 4 个配置的结果仍然相同。
Nginx 语法、以及简单配置
1.简介 Nginx 是一个俄罗斯人编写的非常轻量级的 HTTP 主机,Nginx 发音为“X”,是一个高性能的 HTTP 和反向代理主机,同时也是一个 IMAP/POP3/SMTP 代理主机。
2. 语法 语法:[=|~|~*|^~] /uri/ { … }
笔记:
1. ~ 区分大小写匹配
2. ~* 不区分大小写匹配
3. !~ 和 !~* 分别是区分大小写的不匹配和不区分大小写的不匹配。
示例一:
/ { }
匹配任何查询,因为所有请求都以 / 开头。但正则表达式规则将优先用于查询匹配。
示例二:
=/ {}
仅匹配 /
例三:
~* \.(gif|jpg|jpeg)$ {
\.(gif|jpg)$/logo.png;
}
注意:不区分大小写,匹配以 gif、jpg、jpeg 结尾的任何文件
3. 语法
last-这个标志基本上是用的。
break - 中止,不再继续匹配
- 返回临时重定向的 HTTP 状态 302
- 返回 HTTP 状态 301 以进行永久重定向
1.可用下列表达式确定:
-f和!-f用于判断文件是否存在
-d和!-d用于判断目录是否存在
-e 和 !-e 用于判断文件或目录是否存在
-x 和 !-x 用于判断文件是否可执行
2.以下是可以用于判断的全局变量
例如::88/test1/test2/test.php
复制代码如下:
$主机:
$:88
$::88/测试1/测试2/测试.php
$:/test1/test2/test.php
$:D:\nginx/html
$:D:\nginx/html/test1/test2/test.php
4. 语法
复制代码如下:
{
80;
;
索引 index.html 索引.php;
根html;
扫一扫在手机端查看
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。