目录
一、环境准备
1、准备3台centos服务器
2、软件安装
二、负载均衡配置
三、其他分配策略
1、fair(第三方)
一、环境准备
1、准备3台centos服务器
服务器名称 | 主机名 | IP | 安装服务 | 备注 |
Nginx反向代理服务器 | proxy | 192.168.1.10 | nginx | 关闭selinux和firewalld |
httpd网站服务器 | web1 | 192.168.1.20 | httpd | 关闭selinux和firewalld |
httpd网站服务器 | web2 | 192.168.1.30 | httpd | 关闭selinux和firewalld |
2、软件安装
(1)、proxy服务器
安装nginx:Nginx安装、配置与概述_桂安俊@kylinOS的博客-CSDN博客
(2)、web1和web2服务器
yum install httpd -y
#web1服务器
echo "this is 192.168.1.20 web1 server" > /var/www/html/index.html #做一个首页,用于标记
#web2服务器
echo "this is 192.168.1.30 web2 server" > /var/www/html/index.html #做一个首页,用于标记
修改web1和web2服务器/etc/httpd/conf/httpd.conf监听端口为8080,并启动httpd服务
二、负载均衡配置
vim /usr/local/nginx/conf/nginx.conf
http {
upstream myserver { #在http块的全局配置新增upstream块,myserver为自定义名
#ip_hash; #使同一ip客户端始终访问一个web server,为了演示这里先不加
server 192.168.1.20:8080 weight=1; #weight是权重,默认是1,可根据服务器性能配置
server 192.168.1.30:8080 weight=1;}
... ...
server {
listen 80;
server_name 192.168.1.10;#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://myserver; #和上面自定义的upstream块里的server名对应
root html;
index index.html index.htm;
}... ...
}
/usr/local/nginx/sbin/nginx -s reload
客户端测试:
访问:http://192.168.1.10/
如上图可以看到,浏览器每刷新一次,都会平均访问到web1和web2。
【注】每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,nginx能自动提出down掉的服务器,等down掉服务器恢复后,又会自动加入轮询集群中。
以上常规策略包含了轮询、加权轮询、ip_hash
三、其他分配策略
1、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
配置示例:
upstream myserver {
server 192.168.1.20:8080;
server 192.168.1.30:8080;fair;
}