二、Location语法
语法:location [=|~|~*|^~] /uri/ { … }
注:
1、~ 为区分大小写匹配
2、~* 为不区分大小写匹配
3、!~和!~*分别为区分大小写不匹配
及不区分大小写
不匹配
示例一:
location / {
}
匹配任何查询,因为所有请求都以 / 开头。但是正则表达式规则将被优先和查询匹配。
示例二:
location =/ {}
仅仅匹配/
示例三:
location ~* \.(gif|jpg|jpeg)$ {
rewrite \.(gif|jpg)$ /logo.png;
}
注:不区分大小写匹配任何以gif,jpg,jpeg结尾的文件
三、ReWrite语法
last - 基本上都用这个Flag。
break - 中止Rewirte,不在继续匹配
redirect - 返回临时重定向的HTTP状态302
permanent - 返回永久重定向的HTTP状态301
1、下面是可以用来判断的表达式:
-f和!-f用来判断是否存在文件
-d和!-d用来判断是否存在目录
-e和!-e用来判断是否存在文件或目录
-x和!-x用来判断文件是否可执行
2、下面是可以用作判断的全局变量
例:http://localhost:88/test1/test2/test.php
$host:localhost
$server_port:88
$request_uri:
http://localhost:88/test1/test2/test.php
$document_uri:/test1/test2/test.php
$document_root:D:\nginx/html
$request_filename:D:\nginx/html/test1/test2/test.php
四、Redirect语法
server {
listen 80;
server_name start.igrow.cn;
index index.html index.php;
root html;
if ($http_host !~ "^www\.itlearner\.com$ {
rewrite ^(.*)
http://www.itlearner.com
$1 redirect;
}
}
五、防盗链
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 配置 Location 时常见的误区详解 在 Nginx 的配置过程中,`location` 是一个非常重要的概念,用于控制特定 URL 模式的请求处理方式。然而,在实际应用中,不少开发者对 `location` 的理解存在一定的误区...
Nginx 的 Location 语法规则是 Nginx 反向代理中最重要的配置部分之一。Location 规则用于匹配客户端请求的 URI,并将其路由到相应的服务器或应用程序。下面我们详细解释 Location 语法规则的语法、匹配顺序和示例。...
### Nginx Location配置详细解析 #### 一、引言 Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在 Linux 环境下有着非常好的性能表现。在 Nginx 的配置文件中,`location` ...
本篇文章将详细介绍Nginx的各项配置,并结合提供的"nginx.conf"配置文件和"nginx.txt"说明文件,深入解析Nginx的配置语法和应用场景。** ### 1. Nginx基本结构 Nginx的配置文件主要由多个块组成,包括全局块、...
Nginx 语法规则是 Nginx 配置文件的核心组成部分,它规定了 Nginx 如何处理用户的请求。理解 Nginx 语法规则对于配置 Nginx 是非常重要的。本文详细介绍了 Nginx 语法规则的各种模式和匹配规则。 1. 精确匹配(=) ...
本文将深入探讨Nginx `location`的匹配机制、语法以及常见用法。 1. **匹配类型** - **精确匹配**:使用`=号`,如`location = /path/ {}`,只匹配完全相同的URL。 - **前缀匹配**:不带`=`的`location /path/ {}`...
修改配置后,使用`nginx -t`命令检查配置文件的语法是否正确,无误后用`nginx -s reload`命令平滑重启Nginx以应用新配置。 总的来说,`nginx.conf`是Nginx的核心,通过灵活的配置可以实现多种服务和功能,适应各种...
语法规则 location [=|~|~*|^~] /uri/ { … } 模式 含义 location = /uri = 表示精确匹配,只有完全匹配上才能生效 location ^~ /uri ^~ 开头对URL路径进行前缀匹配,并且在正则之前。 location ~ ...
本文将详细介绍Nginx Location指令的基本语法、匹配过程、配置实例以及Nginx中的全局变量。 首先,Location指令的基本语法非常直观,它使用不同的前缀来表达不同的匹配规则。指令格式为: ```nginx location [修饰...
在学习Nginx配置与管理之前,首先需要了解其基本概念和用途。Nginx在设计之初就非常注重高并发连接的处理,采用了基于事件驱动的架构模式,而且因为其代码的模块化,可以轻松地实现功能的扩展。Nginx的处理速度和高...
这个例子可能会涵盖简单的反向代理、虚拟主机配置、日志设置等内容,是学习Nginx管理的好资料。 在实践中,掌握Nginx的配置和管理技巧对于优化Web服务性能至关重要。理解配置文件结构、熟练运用启动和管理命令,...
- **错误检查**:使用`nginx -t`命令检查配置文件的语法是否正确。 6. **与Java应用的结合** Nginx常作为Java应用(如Spring Boot应用)的反向代理,通过`proxy_pass`指令将HTTP请求转发到后端Java服务器。例如:...
对于更复杂的配置,如SSL/TLS证书配置、URL重写、负载均衡等,需要深入学习Nginx的配置语法和模块功能。你可以在Nginx的官方文档中找到更多详细信息。 总的来说,安装和配置Nginx是一个多步骤的过程,涉及到Linux...
Nginx location 配置语法 1. location [ = | ~ | ~* | ^~ ] uri { ... } 2. location @name { ... } location 配置可以有两种配置方法 1.前缀 + uri(字符串/正则表达式) 2.@ + name 前缀含义 = :...
5. **验证配置**: 创建一个简单的HTML文件(如1.html),放置于设置的静态文件目录下,并在浏览器中访问`http://localhost/1.html`,若能正常显示,则表明Nginx已正确配置。 #### PHP配置步骤 **二、安装与配置PHP...
这一章节详细介绍了Nginx的基础配置文件结构,包括主配置文件、服务器块和location块等。同时,讲解了如何进行性能优化,如调整并发连接数、启用HTTP/2协议、缓存策略等,以提升服务器响应速度和处理能力。 2. **...
在Nginx配置中,`location`指令是核心部分,用于根据URI(统一资源标识符)来决定如何处理请求。本篇文章将深入探讨`location`配置的匹配顺序及其在实际应用中的作用。 ### 1. `location`的基础语法 `location`...
总的来说,配置Nginx的rewrite规则是提升Web应用性能和用户体验的关键步骤,需要理解正则表达式和Nginx的配置语法,才能正确有效地实现URL重写。在LNMP环境中,根据实际的部署类型选择合适的配置文件,并确保规则的...
3.4. nginx重要指令之location 4. nginx中的rewrite 4.1. 什么是rewrite 4.2. rewrite的命令的作用域和优先级 4.3. if指令 4.3.1. if指令的语法 4.3.2. if指令中使用的逻辑运算符 4.3.3. If指令中可以使用的...