Nginx代理之location定义

每一个虚拟主机或是代理服都需要定义一个location,用以在用户端查询时提供搜索,当匹配到合适的location时,转向所需的应用。location可以使用正则来查询匹配,也可以否定匹配,location只针对定义内容进行优先级匹配,并且在查询到匹配后忽略其它匹配选项。以下将对可能遇到的一些location进行说明:

  • location匹配符
  1. 等于匹配符"=",为精确匹配,不支持正则匹配
  2. 空匹配符,匹配以指定模式开始的URI,不支持正则匹配
  3. 正则匹配符"~",这里包括了三种,以"~"开始的区分大小写的匹配,以"~*"开始的不区分大小写的匹配,以"^~"开始的以指定模式开始的正则匹配
  4. 内部访问符"@",一般用于错误页面等

匹配符优先级

  1. =
  2. 空匹配符,满足精确匹配时
  3. ^~
  4. ~或~*
  5. 空匹配符

举例说明upstream tomcats {

server 192.168.100.101:80 max_fails=0 fail_timeout=5s;

server 192.168.100.102:80 max_fails=0 fail_timeout=5s;

}

server {

listen 80;

server_name www.xxx.com;

#1. 空匹配符时,最后生效,与配置先后并无关联

location / {

proxy_next_upstream http_502 http_504 error timeout invalid_header;        proxy_pass http://tomcats;

proxy_set_header Host $host;

proxy_set_header X-Forwarded-For $remote_addr;

}

#2.实际匹配为"www.xxx.com/showlist/",但优先级低于"="号

location ~ /showlist {

root /data/html;

index index.html index.htm;

}#3.最先查询匹配

location = /pages {

root /data/html;

index index.html index.htm;

}

#4.以指定模式进行匹配

location ^~ /file/ {

return 404;

}

#5.等同于"#2"的效果,但匹配内容为以".jpg"结尾的查询

location ~* \.jpg$ {

root /data/img;

}

#6.在执行动态资源请求时,直接转向后端服务器,因为使用了"~*",它优先于第一条规则生效    location ~ .*\.(jsp|do)?$ {

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header Host $host;

proxy_pass http://tomcats;

proxy_next_upstream http_502 http_504 error timeout invalid_header;

}

#7.精确匹配

location /50x.html {

root /data/html;

}

由以上配置进行测试后可以得出以下匹配优先级结论:

(location =) > (location 完整路径 >) >(location ^~ 路径) >(location ~* 正则) >(location 路径)

时间: 2024-11-11 18:44:47

Nginx代理之location定义的相关文章

Mogilefs配置以及nginx代理mogilefs

MogileFS:是一个开源的分布式存储,适用于存储海量的小文件.由LiveJournal旗下的Danga Interactive.这个公司还有memcache , MogileFS, Perlbal(http代理)等产品.其特点如下: 1,工用于应用层(用户空间):无须特殊的核心组件,因为基于http或都nfs,一般客户端都支持. 2,无单点故障所在,假设MySQL已经高可用并且tracker为多个节点.因为MySQL是否高可用,取决于MySQL. 3,自动文件复制,用户在上传一份数据都,tr

nginx代理tomcat

http://blog.csdn.net/kongqz/article/details/6838989 http://www.800l.com/linux-nginx-tomcat-jdk.html http://wangxr66.iteye.com/blog/1559082 开发的应用采用F5负载均衡交换机,F5将请求转发给5台hp unix服务器,每台服务器有多个webserver实例,对外提供web服务和socket等接口服务.之初,曾有个小小的疑问为何不采用开源的apache.Nginx

Nginx防盗链、Nginx访问控制、Nginx解析php相关配置、Nginx代理

Nginx防盗链 1.[[email protected] test.com]# vi /usr/local/nginx/conf/vhost/test.com.conf #+表示1或者多个,+前面的字符 location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$ { expires 7d; valid_referers none blocked server_names  *.test.com ; #定

LNMP(nginx防盗链,访问控制,解析php相关配置,Nginx代理,常见502问题)

一.nginx防盗链 nginx防盗链: [[email protected] ~]# vim /usr/local/nginx/conf/vhost/test.com.conf   添加以下内容 location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$ { expires 7d; valid_referers none blocked server_names  *.test.com ;      

四十九、Nginx防盗链、Nginx访问控制、Nginx解析PHP相关配置、Nginx代理

一.Nginx防盗链 必须和"不记录日志和过期时间"结合在一起,因为它们同时用到了location. # vim /usr/local/nginx/conf/vhost/test.com.conf location ~* ^.+\.(gif|jpg|png|bmp|swf|jpeg|flv|rar|zip|doc|pdf|gz|bz2|xls)$ { expires 7d;    过期时间 valid_referers none blocked server_names *.test.

nginx防盗链,访问控制,解析php相关配置,nginx代理

nginx防盗链 配置如下,可以和不记录静态文件配置结合起来 location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$ { expires 7d; valid_referers none blocked server_names *.test.com ; #设置白名单 if ($invalid_referer) { return 403; #不过不是白名单的refer就403 } access_log

nginx代理、缓存、upstream

代理服务器:客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理服务器的硬盘中,再发送给客户机. 正向代理与反向代理的区别:正向代理的代理对象是客户端,反向代理的代理对象是服务端 架设在客户机与目标主机之间,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中 反向代理服务器架设在服务器端,通过缓冲经常被请求的页面来

搭建sftp服务+nginx代理

在公司,经常会用到sftp服务,比如两个公司对接生产项目,其中一方,要在sftp上上传pdf文件,另一方公司要在sftp服务器上用nginx代理直接下载pdf文件.下面就说说我在实际中应用到的sftp服务+nginx代理的配置方法: 一.环境: 192.168.16.12     centos6.5 在Centos 6.5环境使用系统自带的internal-sftp搭建SFTP服务器. 二.查看版本 查看openssh的版本,使用ssh -V 命令来查看openssh的版本,版本必须大于4.8p

lamp+nginx代理+discuz+wordpress+phpmyadmin

实验课题:搭建LAMP,安装Nginx,作为代理,将MySQL安装在单独的机器,apache负责动态,nginx负责静态 实验环境: 1.VMware Workstation 11 2.设备A:MySQL,IP地址:192.168.0.102,Host:mysql 3.设备B:Nginx+Apache+PHP,IP地址:192.168.0.107,Host:lanp 真机:192.168.0.104 4.Linux发行版:Centos 6.6 x86: 5.Nginx:http://nginx.