nginx实现反向代理和负载均衡Word下载.docx
《nginx实现反向代理和负载均衡Word下载.docx》由会员分享,可在线阅读,更多相关《nginx实现反向代理和负载均衡Word下载.docx(8页珍藏版)》请在冰豆网上搜索。
实现步骤:
本机windows7系统,安装nginx-0.8.54用来作为反向代理服务器,作用户访问的入口,监听80.81,82,8989端口。
后台放置两个tomcat分别部署在8080和8081端口。
虚拟机win2003的iis在90端口发布。
主机地址192.168.162.54,虚拟机地址192.168.40.128
一、通过不同的端口访问不同的服务器
在nginx-0.8.54/conf下添加proxy.conf
内容为
proxy_redirectoff;
proxy_set_headerHost$host;
proxy_set_headerX-Real-IP$remote_addr;
proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;
client_max_body_size10m;
client_body_buffer_size128k;
proxy_connect_timeout90;
proxy_send_timeout90;
proxy_read_timeout90;
proxy_buffers324k;
在nginx.conf中添加配置
includeproxy.conf;
server{listen80;
server_name;
location/{proxy_passhttp:
//192.168.162.54:
8080;
}}
server{listen81;
8081;
}}
server{listen82;
//192.168.40.128:
90;
}}
实现反向代理
在windows/system32/drivers/ect/hosts中
添加192.168.10.162实现域名解析
测试输入
:
81
82
输入通过80端口访问tomcat在8080端口下的应用
输入:
81/inter/通过80端口访问tomcat在8081端口下的应用
这样就是实现了通过不同的端口访问不同的服务器。
二、通过不同的下级目录访问不同的服务器
在之前配置的nginx.conf中的
}}部分扩展为
location/{proxy_passhttp:
}
location/A2/{proxy_passhttp:
location/A3/{proxy_passhttp:
}
输入
实现同一端口80通过不同的下级目录访问不同的服务器
三、实现负载均衡
在nginx.conf中的http模块里添加
upstreammyCluster{
server127.0.0.1:
8080;
8081;
}
表示这个servercluster包含2台服务器
然后在server模块中添加访问同一页面的负载均衡
server{listen8989;
server_namelocalhost;
location~\.jsp${
proxy_passhttp:
//myCluster;
proxy_redirectoff;
proxy_set_headerHost$host;
proxy_set_headerX-Real-IP$remote_addr;
proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;
以8989端口来做实验,为了区分是访问不同的服务器。
虽然两个tomcat的hello文件夹下都有hello.jsp可是他们的内容不同。
结果如下,每次刷新会切换一次服务器。
如图:
可通过修改upstreammyCluster{
8080weight=5;
来改变服务器权重。
四、根据客户端的不同ip访问不同服务器
在nginx.conf中加入模块:
geo$geo{
defaultdefault;
192.168.163.0/24aa;
192.168.162.0/24bb;
upstreamaa.server{
serverhttp:
upstreambb.server{
server192.168.162.54:
upstreamdefault.server{
server{listen84;
server_name;
location/{
proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;
//$geo.server$request_uri;
使得192.168.163.x网段的ip访问虚拟机的90端口
192.168.162.x网段的ip访问8080端口
其他ip访问8081端口
实现不同的ip访问不同的服务器
在192.168.163.37的访问结果:
在192.168.162.54的访问结果: