Nginx在web服务中是一个很强大的工具,可以做静态web服务,当然它的最常用的功能就是其负载均衡,下面只是应用nginx的upstream模块和proxy模块来做一个小实验。在此体现的功能也只是冰山一角。
upstreem 使用注意:1、只能使用http上下文。2、各server只能直接使用IP或者主机名,不要加协议,在此次实验中使用server IP的方式来代理其后端,其后端使用Apache,提供web服务。
实验拓扑图:
实验配置
本实验主要应用nginx的upstream模块和proxy模块。
upstream webservers {
server 192.168.1.117 weight=1 max_fails=2 fail_timeout=3;
server 192.168.1.119 weight=1 max_fails=2 fail_timeout=3;
server 127.0.0.1:8080 backup;
}
server {
listen 80; //此时server监听在tcp/80端口。
server_name www.a.com;
location / {
root html;
index index.html index.htm;
proxy_pass http://webservers/;
proxy_set_header X-Real-IP $remote_addr;
}
}
server {
listen 8080;
server_name 127.0.0.1;
root /www/backup;
}
下面对以上选项说明。
set_header X-Real-IP $remote_addr; //是代理向上游发服务器送首部
add_header X-via $server_addr //是代理向客户端发送的首部。
weight=# : //权重
max_fails=# : //最大失败尝试次数,默认为1。
fail_timeout=time: //失败尝试的超时时长,默认为10s。
backup : //当其他服务都挂掉,会自动转到此页。但是当任何一节点上线backup都不会上线。
实验测试
配置完成就可以做下测试,在其后端两台主机上添加测试页面。而后都要启动httpd服务。访问nginx服务器的IP:192.168.1.118
刷新页面
当同时停掉后端两台服务器时,再次刷新服务。