一、反向代理
1、反向代理优点
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
}
}