`
canofy
  • 浏览: 831343 次
  • 性别: Icon_minigender_1
  • 来自: 北京、四川
社区版块
存档分类
最新评论

nginx中文翻译: location 指令

阅读更多
本文章转自:http://www.linuxtone.org/thread-1069-1-1.html

location

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

default: no
默认:否

context: server
上下文:server

This directive allows different configurations depending on the URI. It can be configured using both conventional strings and regular expressions. To use regular expressions, you must use the prefix ~* for case insensitive match and ~ for case sensitive match.
这个指令随URL不同而接受不同的结构。你可以配置使用常规字符串和正则表达式。如果使用正则表达式,你必须使用 ~* 前缀选择不区分大小写的匹配或者 ~ 选择区分大小写的匹配。

To determine which location directive matches a particular query, the conventional strings are checked first. Conventional strings match the beginning portion of the query and are case-sensitive - the most specific match will be used (see below on how nginx determines this). Afterwards, regular expressions are checked in the order defined in the configuration file. The first regular expression to match the query will stop the search. If no regular expression matches are found, the result from the convention string search is used.
确定 哪个location 指令匹配一个特定指令,常规字符串第一个测试。常规字符串匹配请求的开始部分并且区分大小写,最明确的匹配将会被使用(查看下文明白 nginx 怎么确定它)。然后正则表达式按照配置文件里的顺序测试。找到第一个比配的正则表达式将停止搜索。如果没有找到匹配的正则表达式,使用常规字符串的结果。

There are two ways to modify this behavior. The first is to use the prefix “=”, which matches an exact query only. If the query matches, then searching stops and the request is handled immediately. For example, if the request “/” occurs frequently, then using “location = /” will expedite the processing of this request.
有两个方法修改这个行为。第一个方法是使用 “=”前缀,将只执行严格匹配。如果这个查询匹配,那么将停止搜索并立即处理这个请求。例子:如果经常发生”/”请求,那么使用 “location = /” 将加速处理这个请求。

The second is to use the prefix ^~. This prefix is used with a conventional string and tells nginx to not check regular expressions if the path provided is a match. For instance, “location ^~ /images/” would halt searching if the query begins with /images/ - all regular expression directives would not be checked.
第二个是使用 ^~ 前缀。如果把这个前缀用于一个常规字符串那么告诉nginx 如果路径匹配那么不测试正则表达式。

Furthermore it is important to know that NGINX does the comparison not URL encoded, so if you have a URL like “/images/%20/test” then use “/images/ /test” to determine the location.
而且它重要在于 NGINX 做比较没有 URL 编码,所以如果你有一个 URL 链接’/images/%20/test’ , 那么使用 “images/ /test” 限定location。

To summarize, the order in which directives are checked is as follows:
总结,指令按下列顺序被接受:

1. Directives with the = prefix that match the query exactly. If found, searching stops.
1. = 前缀的指令严格匹配这个查询。如果找到,停止搜索。
2. All remaining directives with conventional strings, longest match first. If this match used the ^~ prefix, searching stops.
2. 剩下的常规字符串,长的在前。如果这个匹配使用 ^~ 前缀,搜索停止。
3. Regular expressions, in order of definition in the configuration file.
3. 正则表达式,按配置文件里的顺序。
4. If #3 yielded a match, that result is used. Else the match from #2 is used.
4. 如果第三步产生匹配,则使用这个结果。否则使用第二步的匹配结果。

Example:
例子:

location = / {
# matches the query / only.
# 只匹配 / 查询。
[ configuration A ]
}
location / {
# matches any query, since all queries begin with /, but regular
# expressions and any longer conventional blocks will be
# matched first.
# 匹配任何查询,因为所有请求都已 / 开头。但是正则表达式规则和长的块规则将被优先和查询匹配。
[ configuration B ]
}
location ^~ /images/ {
# matches any query beginning with /images/ and halts searching,
# so regular expressions will not be checked.
# 匹配任何已 /images/ 开头的任何查询并且停止搜索。任何正则表达式将不会被测试。
[ configuration C ]
}
location ~* ".(gif|jpg|jpeg)$ {
# matches any request ending in gif, jpg, or jpeg. However, all
# requests to the /images/ directory will be handled by
# Configuration C.
# 匹配任何已 gif、jpg 或 jpeg 结尾的请求。然而所有 /images/ 目录的请求将使用 Configuration C。
[ configuration D ]
}

Example requests:
例子请求:

*

/ -> configuration A
*

/documents/document.html -> configuration B
*

/images/1.gif -> configuration C
*

/documents/1.jpg -> configuration D

Note that you could define these 4 configurations in any order and the results would remain the same.
注意:按任意顺序定义这4个配置结果将仍然一样。
分享到:
评论

相关推荐

    Nginx教程从入门到精通--文字版.pdf

    6. Nginx location配置:location指令用于配置URL路由,即根据不同的请求路径(URI)来分发请求到不同的服务器或资源。 7. Nginx root&alias文件路径配置:root和alias指令用于指定请求处理时文件路径的映射关系。 ...

    nginx简单配置说明(开发人员了解)

    ### Nginx简单配置说明(开发人员了解) #### 概述 本文档旨在为开发人员提供一份简明的Nginx配置指南。通过本指南,读者可以了解到如何在本地环境中安装并配置Nginx,使其能够顺利运行。Nginx是一款高性能的HTTP...

    nginx location匹配实例详解

    Nginx配置指令location匹配符优先级和安全问题详解Nginx location 匹配规则Nginx服务器的location指令匹配规则详解利用nginx如何匹配多个条件Nginx ...location匹配规则nginx 匹配规则小总结(推荐)Nginx Location指令URI匹

    Nginx开发从入门到精通

    1. Nginx基础知识:了解Nginx的安装、配置和运行原理,熟悉Nginx的核心模块和指令,掌握Nginx的基本使用。 2. Nginx作为Web服务器:配置Nginx作为静态资源Web服务器,了解虚拟主机和Location的概念,掌握Nginx处理HTTP...

    Nginx Location 指令简明指南

    Nginx的配置文件中包含多个指令,其中Location指令是用于处理特定URI请求的关键部分。本文将详细介绍Nginx Location指令的基本语法、匹配过程、配置实例以及Nginx中的全局变量。 首先,Location指令的基本语法非常...

    Nginx服务器的location指令匹配规则详解

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

    nginx的server和location匹配规则

    Nginx 服务器和 Location 匹配规则 Nginx 配置文件主要由 events、http、server、location、upstream 等块配置项和一些行配置项组成。Server 块匹配规则是 Nginx 配置文件中的一部分,对虚拟主机的相关参数进行配置...

    nginx_location

    Nginx 的 `location` 指令是配置 Web 服务器路由请求的关键部分,用于根据请求的 URI 来决定如何处理请求。以下是对 `location` 指令的详细解释和最佳实践: 1. **匹配规则**: - `=`:精确匹配,如果请求的 URI ...

    Ngnix从入门到精通

    5. Nginx root & alias文件路径配置:配置文件中的root和alias指令用于指定资源文件的路径,其中root用于指定资源的基础路径,alias用于指定匹配特定location时的实际路径。 6. Nginx日志配置:Nginx提供丰富的日志...

    nginx配置location总结location正则写法及rewrite规则写法

    Nginx 的 `location` 指令是配置服务器路由请求的关键部分,它允许你根据请求的URI来定向请求到不同的处理程序或者返回特定的响应。`location` 的正则写法和 `rewrite` 规则是 Nginx 配置中的高级特性,用于实现灵活...

    nginx-cookbook-recipes-high-performance

    5. **URL重写**:通过location指令,Nginx可以实现URL的重写,便于进行SEO优化或隐藏真实路径。 6. **SSL/TLS安全**:Nginx支持HTTPS协议,能有效处理SSL/TLS加密,确保数据传输的安全性。 7. **性能优化**:包括...

    linux + apache(nginx) + mysql + php 配置 详解

    在Nginx配置中设置正确的location指令。 **优化与安全**: 1. 优化配置:例如,调整Apache或Nginx的worker进程数量,优化MySQL缓存设置。 2. 安全:安装防火墙如ufw,限制不必要的端口访问,定期更新系统和软件,...

    Mars3D+nginx 搭建离线API服务,本地访问

    文件列表中有`nginx-windows常用命令.txt`,这可能包含了在Windows环境下操作nginx的一些常用指令,例如启动、停止和重启服务。 2. **安装nginx**:如果你尚未安装nginx,可以从其官方网站下载对应操作系统的版本。...

    Nginx关于location的匹配规则详解.docx

    **Nginx中的Location匹配规则详解** 在Nginx服务器配置中,`location`指令是核心部分之一,用于处理HTTP请求。它根据指定的规则来匹配URL,从而决定如何处理客户端的请求。本文将深入探讨Nginx `location`的匹配...

    nginx1.24.0 windows版

    Nginx 1.24.0 是一个流行的开源Web服务器和反向代理服务器,尤其在高性能、高并发场景下表现优秀。它以其轻量级、模块化的设计和高效的性能而受到广泛赞誉。Nginx 在Windows平台上的版本与在Linux等其他操作系统上的...

    内网安装nginx(离线)

    内网安装Nginx(离线)是一种常见的情况,特别是在企业环境中,由于安全政策或网络隔离,服务器可能无法直接访问互联网。Nginx是一个高性能的HTTP和反向代理服务器,常用于网站服务、负载均衡以及内容缓存。本文将...

    Nginx基本使用介绍.pdf

    * location块(Location Block):基于Nginx服务器接收到的请求字符串,虚拟主机名称(ip、域名)、url匹配,对特定请求进行处理。 1.2 Nginx的安装方式 Nginx的安装方式有两种: * 使用yum安装nginx最新版:`yum...

    nginx利用referer指令实现防盗链配置

    location ~* \.(gif|jpg|png|webp)$ { valid_referers none blocked domain.com *.domain.com server_names ~\.google\. ~\.baidu\.; if ($invalid_referer) { return 403; #rewrite ^/ ...

    微信小程序https服务nginx配置示例.pdf

    在nginx中,通过location指令可以设置请求的路径与服务器文件系统的路径之间的对应关系。例如,可以将请求的/home/路径映射到服务器上/opt/projects/wxmp/home/目录下的文件。 5. 二维码扫描校验文件配置:在微信小...

Global site tag (gtag.js) - Google Analytics