摘要:资源进行分离,jsp ,html,img的动静分离,对于不同的后缀结尾的数据,匹配到不同的服务器上。同时,路径的匹配还可以用于做url的重写,修改url的请求格式,将/age/name/email修改为 age=?&name=?&email=?的格式 localtion语法 匹配模式 语言法 例子
资源进行分离,jsp ,html,img的动静分离,对于不同的后缀结尾的数据,匹配到不同的服务器上。同时,路径的匹配还可以用于做url的重写,修改url的请求格式,将/age/name/email修改为 age=?&name=?&email=?的格式
localtion语法 匹配模式 语言法 例子 精准匹配 localtion=pattern{} location = /50x.html( error_page 500 502 503 504 /50x.html;) 一般匹配 localtion pattern location /goods (/goodsxxx的访问匹配) 正则匹配 localtion ~pattern{} location ~ .jsp$(以jsp结尾的文件)
备注。pattern表示的是表达式
以xx结尾的upstream myapp{ server 192.168.100.10:8080 weight=1 max_fails=2 fail_timeout=30s; server 192.168.100.10:8081 weight=1 max_fails=2 fail_timeout=30s; } server { listen 80; server_name localhost; #charset koi8-r; access_log yellow/yellow.access.log main; #任何以jsp结尾的请求 .jsp$ location ~ .jsp$ { #root html; #index index.html index.htm; proxy_set_header X-real-ip $remote_addr; proxy_pass http://myapp; } //错误页面信息配置 error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
语法判断
#虚拟主机配置: server { listen 1234; server_name bhz.com; location / { #正则表达式匹配uri方式:在/usr/local/nginx/bhz.com下 建立一个test123.html 然后使用正则匹配 #location ~ test { ## 重写语法:if return (条件 = ~ ~*) #ip判断,当ip是192.168.1.200 ,返回404 if ($remote_addr = 192.168.1.200) { return 404; } #当user_agent(浏览器)是火狐的,就跳转到火狐页面 # ~* 表示包含 firefox的 ,不区分大小写的匹配 if ($http_user_agent ~* firefox) { #^.*$ 表示当前的请求地址 rewrite ^.*$ /firefox.html; # #直接退出,不然就会有两个请求问题,报错4040 break; } #默认是的文档节点是 yellowcong.com root yellowcong.com; index index.html; } #判断商品的路径 location /goods { #{1,5} 表示1-5位的数字 #商品为goods-121.html rewrite "goods-(d{1,5}).html" /goods-ctrl.html?id=$(1); #路径 root yellowcong.com; #页面 index index.html; } #配置访问日志 access_log logs/yellowcong.com.access.log main; } 参数修改
通过修改$args来修该请求的参数。
location /testnnnn{ set $args "foo=1&bar=2"; proxy_pass http://localhost:8080/testnnnn; } url重写
对于localtion可以像分组一样,对url进行分组,获取到传递的参数,然后传递到后台
#将/info/22/yellowcong/717350389@11.com 转化为 /info?age=12&name=yellowcon&email=717350389 #[0-9]表示 0-9 范围i 数字 也可以使用d+ #+ 表示1个或多个 #w+ 表示是字符串 #$ 表示结尾 rewrite ^/info/([0-9]+)/(w+)/(w+)$ /info?age=$1&name=$2&email=$3 ; break;
相关文章推荐
虚拟主机的专业参数,分别都是什么意思?2022-09-09
中非域名注册规则是怎样的?注册域名有什么用处? 2022-01-10
HostEase新年活动促销 美国/香港主机全场低至五折2021-12-28
HostGator下载完整备份教程分享2021-12-28
Flink中有界数据与无界数据的示例分析2021-12-28