location规则

来源:互联网 发布:淘宝上怎么退货给卖家 编辑:程序博客网 时间:2024/05/16 05:25

Nginx location配置

规则

location [=|~|~*|^~] /uri/ { … }

  • = 严格匹配。如果这个查询匹配,那么将停止搜索并立即处理此请求。
  • ~ 为区分大小写匹配(可用正则表达式)
  • ~* 为不区分大小写匹配(可用正则表达式)
  • !~和!~*分别为区分大小写不匹配及不区分大小写不匹配
  • ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。

首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。

示例

匹配任何查询,因为所有请求都以 / 开头。但是正则表达式规则将被优先和查询匹配。

location / {}

仅仅匹配 /,访问根目录

location =/ {}#访问http://localhost/

不区分大小写匹配任何以gif,jpg,jpeg结尾的文件

location ~* .(gif|jpg|jpeg)$ {rewrite .(gif|jpg)$ /logo.png;}

匹配任何已 /images/ 开头的任何查询并且停止搜索。任何正则表达式将不会被测试。

location ^~ /images/ {}#访问http://localhost/images/a.html

不区分大小写匹配任何以 gif、jpg 或 jpeg 结尾的请求。

location ~* .(gif|jpg|jpeg)$ {}

实际中,常用的三个匹配规则定义。
直接匹配网站根,通过域名访问网站首页比较频繁,使用这个会加速处理,官网如是说。
这里是直接转发给后端应用服务器了,也可以是一个静态首页

# 第一个必选规则location = / {    proxy_pass http://tomcat:8080/index}

第二个必选规则是处理静态文件请求,这是nginx作为http服务器的强项

# 有两种配置模式,目录匹配或后缀匹配,任选其一或搭配使用location ^~ /static/ {    root /webroot/static/;}location ~* \.(gif|jpg|jpeg|png|css|js|ico)$ {    root /webroot/res/;}

第三个规则就是通用规则,用来转发动态请求到后端应用服务器,非静态文件请求就默认是动态请求,自己根据实际把握,毕竟目前的一些框架的流行,带.php,.jsp后缀的情况很少了

location / {    proxy_pass http://tomcat:8080/}

场景一: nginx对指定目录做代理(出自运维生存时间http://www.ttlsa.com/nginx/nginx-proxy-spec-dir/)

web1,作为前端端服务器,访问地址是http://192.168.1.1, 要将http://192.168.1.1/bbs 的请求交给web2。在web1的网站根目录下并没有bbs目录.
web2,作为后端web服务器,访问地址是http://192.168.1.2

#方式一location /bbs/ {proxy_pass http://192.168.1.2/;             #有“/”}效果:通过 http://192.168.1.1/bbs  可以访问到web2网站根目录下的内容
#方式二(未验证通过)location /bbs/ {proxy_pass http://192.168.1.2;            #无“/”}效果:要通过web1反问web2网站根目录的内容则需要输入:http://192.168.1.1/bbs/bbs
0 0
原创粉丝点击