企业实战篇nignx(3)负载均衡
轮询
这是nginx的自带功能,所以直接在配置文件中添加新的后端即可
实验环境:server1作为nginx服务器,server2和server3作为apache服务器。
在server1中修改配置文件内容:
cd /usr/local/nginx
cd conf/
vim nginx.conf
17 http {
18 include mime.types;
19 default_type application/octet-stream;
20 upstream bkend {
21 server 172.25.254.2:80;
22 server 172.25.254.3:80; #添加新的后端
23 }
nginx -t #语法检测
nginx -s reload #在不暂停服务的情况下重新加载
server {
listen 80;
server_name server1;
location / {
proxy_pass http://bkend;
}
}
}
访问nginx可以发现以下轮询(在server2和server3的apache的网页中轮询):
(本质上就是在反向代理服务的基础上,添加后端服务器)
主备切换
如果不希望一直在server2和server3之间切换,而是更倾向与一台机器
当server2宕掉时server3才工作:
在server1中修改配置文件内容:
cd /usr/local/nginx
cd conf/
vim nginx.conf
17 http {
18 include mime.types;
19 default_type application/octet-stream;
20 upstream bkend {
21 ip_hash; #只需要加这一条参数
22 server 172.25.254.2:80;
23 server 172.25.254.3:80;
24 }
nginx -t #语法检测
nginx -s reload #在不暂停服务的情况下重新加载
测试:
测试:
step1 在客户端(真机)中:
此时倾向于server2:
step2 关闭虚拟机server2
step3测试:
3.利用nginx服务器自身也可以作为备用后端
nginx本身也是一个http服务器
server1也作为备用机,server3宕掉时server1工作:
在server1中修改配置文件内容:
cd /usr/local/nginx
cd conf/
vim nginx.conf
17 http {
18 include mime.types;
19 default_type application/octet-stream;
20 upstream bkend {
21 server 172.25.254.3:80;
22 server 127.0.0.1:80 backup;
23 }
nginx -t #语法检测
nginx -s reload #在不暂停服务的情况下重新加载
测试:
当server3正常工作时,server1作为备机;而server3宕掉时,server1就顶上来