首页 > nginx > nginx的反向代理

nginx的反向代理

作者:bin
目录
[隐藏]

原理:

客户端请求外部服务器=>反向代理接受请求=>转发=>内部服务器=>得到结果=>返回给客户端

优点是,外部服务器会将返回结果缓存在本地,这样同样的请求,就不再请求内部服务器,这样就减轻了内部服务器的压力

1、多域名跳转

配合location的匹配,可以将url路由至指定域名或ip下,示例:

server www.ben.com

location / { 

proxy_pass http://192.168.1.2/web  #将www.ben.com指向http://192.168.1.2/web

}

location /admin {

proxy_pass http://192.168.1.3/admin #将www.ben.com/admin,指向http://192.168.1.2/admin

}

server www.benmobile.com

location / {

proxy_pass http://192.168.1.4/mobile #将www.benmobile.com 指向http://192.168.1.4/mobile

}

2、通过nginx重定向实现新旧域名过度

server
{
 listen 80;
 server_name dev.zengbingo.com;
 rewrite ^/(.*)$ http://www.baidu.com/$1 permanent;
}

输入:https://dev.zengbingo.com/?name=zengbin

跳转:https://www.baidu.com/?name=zengbin

 

也可以通过nginx核心变量host去判断

server
{
 listen 80;
 server_name dev.zengbingo.com www.zsenbgin.com;
 if ($host != 'www.zsenbgin.com') {
 rewrite ^/(.*)$ http://www.baidu.com/$1 permanent;
 }
}

这里值得注意的是permanent:永久重定向,direct:临时重定向;

3、alias在nginx下的应用

server
{
 listen 80;
 server_name dev.zengbingo.com;
 location /ben{
 alias /home/ben/$1;
 }
}

请求url location后面部分会被追加到alias指定到目录后面

例如:http://dev.zengbingo.com/ben/package.xml

请求位置:/home/ben/package.xml

 

您必须 [ 登录 ] 才能发表留言!