Linux深入篇之二:配置Nginx负载均衡
Nginx为后端服务器应用集群配置负载均衡
负载均衡名称:可任意指定;必须跟vhosts.conf虚拟主机pass段一致,否则不能转发后端的请求。
weight配置权重:在fail_timeout内检查max_fails次数,失败则剔除均衡。
除了可以负载均衡后端服务器之外,还可以检查后端服务器状态!
格式:
upstream app_01 {
server 127.0.0.1:8080 weight=1 max_fails=2 fail_timeout=30s;
server 127.0.0.1:8081 weight=1 max_fails=2 fail_timeout=30s;
}
虚拟主机配置:
server{
侦听80端口
listen 80;
定义使用www.jf.net访问:
server_name www.jf.net;
设定本虚拟主机的访问日志:
access_log logs/access.log main;
定义服务器的默认网站根目录位置:
root /data/webapps/a;
定义首页索引文件的名称:
index index.php index.html index.htm;
默认请求:
location ~ /{
root /data/www/wugk;
定义首页索引文件的名称:
index index.php index.html index.htm;
实验环境:
准备3台测试服务器:1台nginx服务器、2台lap服务器、2台MYSQL后端数据库服务器
1、配置nginx服务器:增加以下两行内容:
新增负载均衡模块:web01,内容为:2台后端LAP服务器192.168.174.15、192.168.174.16;
再将此模块用于域名:www.baishubing.com.cn(192.168.174.13)调用!
server 192.168.174.15:80 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.174.16:80 weight=1 max_fails=2 fail_timeout=30s;
解释为:30秒内检查2次,如果超时或者访问错误,就会在服务器列表中剔除当前的服务器!
等到这个服务存活了,再把这个服务器添加进来,把请求转发到这个服务器上来!
可配置多个均衡!
proxy_pass http://web01;
默认用户的请求会过渡到这个均衡模块(web01)上来;
测试1:rr模式
调用这个虚拟主机的配置文件:
测试结果:nginx服务使用rr模式,轮训地访问2个服务!
每个请求按时间顺序逐一分配到后端不同的服务器!
如果后端某台服务器down掉,自动剔除,待恢复自动添加上!
down其中的LAP01,只能访问到LAP02!
启动LAP01,又恢复了轮训的模式!
测试2:ip-hash模式
每个请求根据访问的IP的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题,一般用于登录会话。
重启Nginx服务,打开测试网页,会话访问到LAP02!
将LAP02,shut,会话访问到LAP01!
再将LAP02,start,会话又回到了LAP02!
测试结果:每个访客固定访问一个后端服务器,解决了session的问题,一般用于登录会话!
测试3:不同服务器端口,访问内容不受影响
如果新增加的这台服务器不是80而是81,同样的,访问时不需要带端口,只需要得到服务的web!
测试:宕机一台服务器:192.168.174.15
再次访问:只能访问到还存活的那台192.168.174.16!
测试结果:当其中一台服务器宕机了,nginx会自动把宕机的那台服务器在服务器列表中自动剔除它!
当这台服务器激活之后,再次加入到活动服务器列表中!
再次测试:
测试结果:当宕机的服务器激活之后,nginx又会自动把激活了的那台服务器自动加入到活动的服务器列表中!
本文出自 “柏书兵-系统运维” 博客,转载请与作者联系!