Nginx+centos7负载均衡服务器搭建

作用

负载均衡是高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。

原理

访问域名找虚拟主机,通过域名解析到Nginx负载均衡服务器,由Nginx转到upstream(服务器集群),upstream分发到web服务器,web服务器将数据反馈给用户。访问量大时,将一台服务器的工作由多台服务器完成。

拓扑环境

建议装选择虚拟机内存为1G,当然你的电脑够强大的话,可以适当增大内存。

服务器名称系统版本预装软件IP地址
Nginx服务器CentOS 7LNMP192.168.20.33
Web1服务器CentOS 7LNMP192.168.20.34
Web2服务器CentOS 7LNMP192.168.20.35

克隆虚拟机

此架构需要三台虚拟机,如果没有多台设备,可使用VMware克隆多台虚拟机。
第一台位负载均衡服务器(Nginx) 192.168.20.33
第二台web1服务器 192.168.20.34
第二台web2服务器 192.168.20.35

操作步骤如下:
1.为防止虚拟机崩溃,克隆前关闭虚拟机。
2.右击要复制的虚拟机,点击管理->克隆->下一步->虚拟机当前状态->创建完整克隆
3.选择一个空间大一点的磁盘,点击完成。

配置虚拟机

首先开启三台虚拟机,用ifconfig分别获取ip,记录三台虚拟机的ip

配置负载均衡服务器

打开nginx的配置文件,在http大括号内,添加如下配置

Nginx服务器配置


#服务器集群
upstream lvs{
#集群有几台服务器即可配置几台,weight表示权重,权重越大被访问到的几率越大
#max_fails表示最大失败请求数,超过这个数字就不在访问
#fail_timeout请求失败时间
#这里添加的是上面启动好的两台web服务器
server 192.168.20.34 weight=1 max_fails=3 fail_timeout=20s;
server 192.168.20.35 weight=1 max_fails=3 fail_timeout=20s;
}

#nginx基本配置
server{
listen 80; #端口号
server_name lvs.com; #服务名称
location /{
#将访问请求转向至服务器集群,mycluster和上面upstream rms对应
proxy_pass http://lvs;
# 真实的客户端IP
proxy_set_header X-Real-IP $remote_addr;
# 请求头中Host信息
proxy_set_header Host $host;
# 代理路由信息,此处取IP有安全隐患
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 真实的用户访问协议
proxy_set_header X-Forwarded-Proto $scheme;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}

}

两web服务器配置相同,配置如下,在http大括号内,添加如下内容。

1
2
3
4
5
6
7
8
9
server {
listen 80; #监听的端口号与负载均衡服务器监听的端口号保持一致
server_name lvs520.com; #该服务名称随意设置,不必与nginx服务器服务名称保持一致。
root /usr/share/nginx/html;
charset utf-8;
location / {
index index.html index.htm;
}
}

本地主机配置

在C:\Windows\System32\drivers\etc文件夹下,打开hosts文件。在尾行插入:

1
192.168.20.33 www.lvs.com #此处换成你nginx服务器ip 后接虚拟域名

各虚拟机开启服务

负载均衡服务器不需要解析PHP,只需开启nginx就可以。
web服务器需开启nginx,php-fpm服务。3台都需要重启Nginx //service nginx restart

测试集

测试前请先关闭防火墙,为了能够看到分发效果,在web1和web2服务器页面,写入不同的值。
在web1服务器/usr/share/nginx/html/index.html中,写入

1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head id=”Head1″>
<title>
lvs
</title>
</head>
<body id=”body1″ class=”fp-viewing”>
<div class=”gd”>
<h1>web1服务器</h1>
</div>
</body>
</html>

在web2服务器/usr/share/nginx/html/index.html中,写入

1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head id=”Head1″>
<title>
lvs
</title>
</head>
<body id=”body1″ class=”fp-viewing”>
<div class=”gd”>
<h1>web2服务器</h1>
</div>
</body>
</html>

测试结果

在本地端打开浏览器,输入:lvs.com

分别显示

0

评论0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
没有账号? 忘记密码?