使用Nginx实现负载均衡
1. 轮询
这是nginx的自带功能,所以直接在配置文件中添加新的后端即可
step1:在server1中修改配置文件内容
cd /usr/local/nginx
cd conf/
vim nginx.conf
http {
include mime.types;
default_type application/octet-stream;
upstream westos {
server 172.25.1.2:80;
server 172.25.1.3:80; #添加新的后端
}
nginx -t #语法检测
nginx -s reload #在不暂停服务的情况下重新加载
step2: 写默认发布页面
之前我们已经在server2中写过,现在在server3中写:
yum install httpd -y
vim /var/www/html/index.html
server3
systemctl restart httpd
step3:测试:
curl www.kane.org
2. 不切换
如果不希望一直在server2和server3之间切换,而是更倾向与一台机器
当其中一台宕掉时另一台才工作:
在server1中修改配置文件内容:
cd /usr/local/nginx
cd conf/
vim nginx.conf
http {
include mime.types;
default_type application/octet-stream;
upstream westos {
ip_hash; #只需要加这一条参数
server 172.25.1.2:80;
server 172.25.1.3:80;
}
测试:
step1 在客户端(真机)中:
curl www.kane.org
step2 关闭虚拟机server3
step3 在客户端(真机)中:
curl www.kane.org
3. 利用nginx服务器作为备用后端
nginx本身也是一个http服务器
server1也作为备用机,server3宕掉时server1工作:
在server1中修改配置文件内容:
cd /usr/local/nginx
cd conf/
vim nginx.conf
http {
include mime.types;
default_type application/octet-stream;
upstream westos {
server 172.25.1.3:80;
server 127.0.0.1:80 backup;
}
cd /usr/local/nginx/
cd html/
>index.html
vim index.html
server1
nginx -t #语法检测
nginx -s reload #在不暂停服务的情况下重新加载
测试:
当server3正常工作时,server1作为备机;而server3宕掉时,server1就顶上来
step1 在客户端(真机)中:
curl www.kane.org
step2 关闭server3
step3 在客户端(真机)中:
curl www.westos.org