您的位置:首页 > 运维架构 > 反向代理

nginx学习(六) 负载均衡、反向代理、rewrite

2015-12-06 17:14 579 查看
一、反向代理

1、反向代理优点
降低应用服务器压力
动静分离、负载均衡
反向代理:http proxy模块 实现

2、反向代理实例
upstream baidu.com{#负载均衡
server 1.1.1.1 weight=5;
}
server{
location /{
proxy_pass "http://baidu.com"
}
}
3、
location下,没有配置代理,默认找root属性对应的路径下加载
server{
root /var/html/
}

location ~* .*\.(jpg|png)${
if(-f $request_filename){#如果请求文件存在
expires 1d;#缓存1d
break;
}
}

#定位到不同路径下
location ~* .*\.(html|htm)${
root /var/html2
}

二、负载均衡模块
1、
upstream baidu.com{#负载均衡
server 1.1.1.1 weight=5;
}

三、rewrite模块
可以将真实路径隐藏,将用户访问的路径转换为真实路径
1、
location ~* .*\.(jpg|png)${}
~*(不区分大小写)
.*(.表示任意字符;*表示任意多个字符)
\.(\转义)

2、捕获()内的任何文本,提取出变量
^(.*)(hello|world)$
请求中有,hehe world捕获的结果:$1=hehe &2=world
因为有两个括号,生成两个变量

3、rewrite
location /download/ {
rewrite ^(/download/.*)/media/(.*)\..*$ $1/mp3/$2.mp3
}

last 完成重写指令,之后搜索相应的url或location
rewrite ^(/download/.*)/media/(.*)\..*$ $1/mp3/$2.mp3 last;

4、
注: 对花括号( { 和 } )来说, 他们既能用在重定向的正则表达式里,也是用在配置文件里分割代码块, 为了避免冲突, 正则表达式里带花括号的话,应该用双引号(或者单引号)包围。比如,要将类似以下的url
/photos/123456
重定向到:
/path/to/photos/12/1234/123456.png
可以用以下方法 (注意双引号):
rewrite "/photos/([0-9] {2})([0-9] {2})([0-9] {2})" /path/to/photos/$1/$1$2/$1$2$3.png;

5、内部重定向
server{
server_name /abc/ {
location ^/abc/(.*)$ /bcd/$1
}
location /bcd/{
internal;
root var/html2
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: