我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

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;

二维码
扫一扫在手机端查看

本文链接:https://by928.com/1507.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线