Nginx基础location语法及功能配置实例

这一篇将简单说一下Nginx的location功能。

目录 1.Nginx location1.1.location作用1.2.location语法1.3.location匹配示例1.4.location配置实例1.5.不用uri及特殊字符组合匹配的顺序说明

1.Nginx location 1.1.location作用

location指令的作用就是根据用户请求的URI来执行不同的应用。

1.2.location语法

location [ = | ~ | ~* | ^~ ] uri {...}

将以上语法分为四部分进行说明:

location:指令[ = | ~ | ~* | ^~ ]:匹配的标识uri:匹配的网站地址{...}:匹配uri后要执行的配置段

注意:

~与~*的区别是:~区分大小写,~*不区分大小写^~:进行常规字符串匹配后,不做正则表达式的检查

1.3.location匹配示例

location = / {[ configuration A]}location / {[ configuration B]}location /documents {[ configuration C]}location ^~ /images/ {[ configuration D]}location ~* \.(gif|jpg|jpeg)$ {[ configuration E]}
上述配置,请求“/”时,匹配configuration A请求"/index.html"时,讲匹配configuration B请求“/documents/docunment.html”时,匹配configuration C请求“images/1.gif”时,匹配configuration D请求“/documents/1.jpg”时,匹配configuration E

1.4.location配置实例

 server {        listen       80;        server_name  bbs.yygg.com;        root    html/bbs;        location / {            return 401;        }        location =/ {            return 402;        }        location /documents/ {            return 403;        }        location ^~ /images/ {            return 405;        }        location ~* \.(gif|jpg|jpeg)$ {            return 406;        }

测试结果

[root@nginx-01 ~]# curl -s -o /dev/null -I -w "%{http_code}\n" bbs.yygg.com402[root@nginx-01 ~]# curl -s -o /dev/null -I -w "%{http_code}\n" bbs.yygg.com/402[root@nginx-01 ~]# curl -s -o /dev/null -I -w "%{http_code}\n" bbs.yygg.com/index.html401[root@nginx-01 ~]# curl -s -o /dev/null -I -w "%{http_code}\n" bbs.yygg.com/documents/documents.html403[root@nginx-01 ~]# curl -s -o /dev/null -I -w "%{http_code}\n" bbs.yygg.com/images/1.gif405[root@nginx-01 ~]# curl -s -o /dev/null -I -w "%{http_code}\n" bbs.yygg.com/documents/1.jpg406[root@nginx-01 ~]# curl -s -o /dev/null -I -w "%{http_code}\n" bbs.yygg.com/yyang/401

返回的状态码也是与配置中的规则相匹配的。 1.5.不用uri及特殊字符组合匹配的顺序说明

location =/ {}:精确匹配location ^~ /images/ {}:常规字符串匹配,不做正则匹配location ~* \.(gif|jpg|jpeg)$ {}:正则匹配location /documents/ {}:常规字符串匹配,如果有正则,优先匹配正则location / {}:所有location都不匹配后默认匹配

以上就是Nginx基础location语法及功能配置实例的详细内容,更多关于Nginx location语法功能配置的资料请关注我们其它相关文章!

(0)

相关推荐

  • Nginx服务器中的location配置详解

    语法 location  [=|~|~*|^~] /uri/  {...} 规则 = : 表示精确的URI匹配(有兴趣的同学可以看一下url和uri的区别) -: 表示区分大小写的正则匹配 -*:表示不区分大小写的正则匹配 !~ && !~*:表示区分大小写不匹配的正则和不区分大小写的不匹配的正则 /:通用匹配,任何请求都会匹配到 location匹配目标 location匹配测试只使用请求URI的部分,而不使用参数部分.(原因:参数的写法太多,无法精确匹配) location匹配顺序 多

  • 详解nginx location指令

    location 介绍 location是Nginx中的块级指令(block directive),,location指令的功能是用来匹配不同的url请求,进而对请求做不同的处理和响应,这其中较难理解的是多个location的匹配顺序,本文会作为重点来解释和说明. 开始之前先明确一些约定,我们输入的网址叫做请求URI,nginx用请求URI与location中配置的URI做匹配. Nginx的HTTP配置主要包括三个区块,结构如下: http { //这个是协议级别 include mime.t

  • 详解Nginx之Location配置(Location匹配顺序)

    location有"定位"的意思, 主要是根据Uri来进行不同的定位.在虚拟主机的配置中,是必不可少的. location可以把网站的不同部分,定位到不同的处理方式上. 1.location的基础语法 location [=|~|~*|^~] patt { } =:严格匹配.如果这个查询匹配,那么将停止搜索并立即处理此请求. ~:为区分大小写匹配(可用正则表达式). ~*:为不区分大小写匹配(可用正则表达式). ^~:如果把这个前缀用于一个常规字符串,那么告诉nginx 如果路径匹配那

  • 详解Nginx Location配置

    今天有一位同学问到 Nginx 的站点多路径匹配的问题? 1.www.domain.com/a 需要返回 /var/www/domain.com/a/index.html 2.www.domain.com/b 需要返回 /var/www/domain.com/b/index.html 如何配置 Nginx 使之生效? 解决这个问题,第一的反映是直接使用 Nginx 的 location 指令来解决,不过在给出答案之前,我们先来了解一下 Nginx location 指令的基础. Nginx 区块

  • Nginx服务器中location配置的一些基本要点解析

    在这一篇文章里,我将介绍nginx关于location的处理,大家都知道Nginx配置文件里面会有很多的location,nginx的配置指令的作用域可以分为 main,server,location这3个种,实际上这3者不是依次包含的关系,而是相互独立的关系,比如一个只具有main级别作用域的指令,是不能写在某个server或者location内的,模块的某个指令可以同时具有main,server,location这3种作用域,另外每个模块有 main,srv,loc这3个级别的配置,一个模块

  • Nginx基础location语法及功能配置实例

    这一篇将简单说一下Nginx的location功能. 目录 1.Nginx location1.1.location作用1.2.location语法1.3.location匹配示例1.4.location配置实例1.5.不用uri及特殊字符组合匹配的顺序说明 1.Nginx location 1.1.location作用 location指令的作用就是根据用户请求的URI来执行不同的应用. 1.2.location语法 location [ = | ~ | ~* | ^~ ] uri {...}

  • Nginx做NodeJS应用负载均衡配置实例

    负载均衡可以把用户的请求分摊到多个服务器上进行处理,从而实现了对海量用户的访问支持.负载均衡的架构如图所示: 对于复杂的Web应用来说,用Nginx做前端负载均衡是理所当然的事. 下面,我们用Nginx做NodeJS应用的负载均衡. 1.配置Nginx 修改nginx.conf: upstream sample { server 127.0.0.1:3000; server 127.0.0.1:3001; keepalive 64; } server { listen 80; .... serv

  • Nginx安装后常用功能配置基础篇

    前言 为了在使用中更高效简洁,Nginx安装后通常会进行一些常用的配置. 1.主配置文件与虚拟主机分离 如果虚拟主机很多的话,进行分离看起来会更方便,还可以按功能.业务进行划分,下面以两个虚拟主机为例. 完整的除去空行和注释后的配置文件: [root@nginx-01 conf]# egrep -v "#|^$" nginx.conf.bak worker_processes 1; events { worker_connections 1024; } http { include m

  • nginx多location配置实例代码

    目录 前言 nginx常用正则表达式 实测 备注 总结 前言 nginx server下配置多个location根据路径匹的不同做不同的处理. nginx常用正则表达式 语法规则: location [=|~|~*|^~] /uri/ { … } = 开头表示:精确匹配. ^~ 开头表示:区分大小写以什么开头. ~ 开头表示:区分大小写的正则匹配. ~* 开头表示:不区分大小写的正则匹配. !~ 和!~*分别表示:区分大小写 不匹配 及不区分大小写 不匹配的正则匹配. / 表示:通用匹配,任何请

  • nginx location语法使用介绍

    nginx location介绍 Nginx 中的 Location 指令 是NginxHttpCoreModule中重要指令.Location 指令,是用来为匹配的 URI 进行配置,URI 即语法中的"/uri/",可以是字符串或正则表达式.但如果要使用正则表达式,则必须指定前缀. nginx location语法 基本语法:location [=|~|~*|^~] /uri/ { - } = 严格匹配.如果这个查询匹配,那么将停止搜索并立即处理此请求. ~ 为区分大小写匹配(可用

  • 通过lua来配置实现Nginx服务器的防盗链功能

    下载服务器时常被人盗链,时间久了导致服务器大量资源浪费,由于服务器使用nginx做为web服务器.nginx的防盗链方法有很多,可以使用现成的防盗链模块nginx-accesskey-2.0.3,编译ningx时添加此模块即可. 由于服务其他业务需要,所以nginx编译了lua模块,所以就想通过lua来实现下载服务器的防盗链功能(通过lua的Nginx模块lua_nginx_module.这里不再详细介绍配置过程),这样就可以免去了accesskey模块.原理就是生成经过处理过的下载链接,然后下

  • Nginx环境下WordPress的多站点功能配置详解

    WordPress的多站点功能允许安装一个WordPress程序的情况下,实现多个站点(也就是一套程序,可以绑定多个域名或子域名). 每个站点拥有独立的主题.插件.文章以及页面. 这样可以极大的减少了维护和更新多个WordPress安装程序的麻烦, 并且,每个站点之间又能够相互独立,互不影响. WordPress multisite有两个方式:子目录和子域名,这里我们主要介绍子域名方式. 也就是说,在主域名的基础上,我们会创建一个子域名,例如:http://shop.jb51.com. 同时,我

  • Nginx配置文件nginx.conf的基本配置实例详解

    目录 前言 1. Nginx配置样例 2. Nginx负载均衡方式 2.1 轮询 2.2 权重 2.3 Nginx解决集群共享session问题的方案 3. Nginx动静分离(静态资源和动态资源来自于不同的服务器) 总结 前言 对于Nginx首先要了解的是Nginx的作用和它的代理方式,Nginx的作用为负载均衡.代理方式为反向代理. 负载均衡:平衡web服务器集群中转发给各服务器的请求数,防止出现服务器因为处理请求压力大或小导致内存溢出.宕机或资源浪费的情况发生. 反向代理:对外暴露的地址是

  • ThinkPHP 在阿里云上的nginx.config配置实例详解

    具体代码如下所示: # For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Documentation: http://nginx.org/ru/docs/ user nginx; worker_processes auto; error_log /var/log/nginx/error.log;

  • Nginx配合Apache或Tomcat的动静分离基本配置实例

    其实本人比较喜欢nginx跑静态和做负载反向代理,动态php还是交给apache处理比较稳定,jsp就交给tomcat.resin或jboss.nginx跑静态的能力是无与伦比的,是目前web服务器里最强的.nginx和apache.tomcat.resin的动静分离配置其实很简单,就几句配置,稳定性也非常好. 1.nginx和apache的动静分离配置: 把下面配置放到nginx配置文件相应的server { }里面,如果使用其他端口号,改一下就行: #所有php的动态页面均交由apache处

随机推荐