负载均衡/服务器集群概念介绍
负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
全局负载均衡具备的特点
1、提高服务器响应速度,解决网络拥塞问题,达到高质量的网络访问效果。
2、能够远距离为用户提供完全的透明服务,真正实现与地理位置无关性
3、能够避免各种单点失效,既包括数据中心、服务器等的单点失效,也包括专线故障引起的单点失效。
服务器集群介绍
服务器集群就是指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行,解决了单点问题。
负载均衡集群部署
环境准备及规划
1.四台虚拟机
主机名 | 外网IP地址 | 内网IP地址 |
---|---|---|
lb01 | 10.0.0.5 | 172.16.1.5 |
Web01 | 10.0.0.7 | 172.16.1.7 |
Web02 | 10.0.0.8 | 172.16.1.8 |
Web03 | 10.0.0.9 | 172.16.1.9 |
1.安装nginx服务(所有虚拟机)
yum install -y nginx
2. 编写web01/配置文件(web01)
vim /ete/nginx/nginx.conf
配置文件内容如下:
user www;
worker_processes 4;
error_log /var/log/nginx/error.log debug;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
keepalive_timeout 0;
include /etc/nginx/conf.d/www.conf;
3.编写扩展配置文件(web01)
vim /etc/nginxconf.d/www.conf
配置文件内容如下:
server {
listen 80;
server_name www.oldboy.com;
location / {
root /html/www;
index index.html index.htm;
}
}
3.传输配置主配置文件/扩展配置文件(web01)
由于我的环境用的是内网,如果传输不了复制即可
scp -rp /ete/nginx/nginx.conf 172.16.1.8 /ete/nginx/nginx.conf
scp -rp /etc/nginx/nginx.conf 172.16.1.9:/etc/nginx/nginx.conf
scp -rp /etc/nginx/conf.d/www.conf 172.16.1.8:/etc/nginx/conf.d/www.conf
scp -rp /etc/nginx/conf.d/www.conf 172.16.1.8:/etc/nginx/conf.d/www.conf
4.创建虚拟用户(所有web服务器)
useradd -M -s /sbin/nologin www
5.创建/配置站点目录信息
mkdir /html/www -p
echo "`hostname` www.oldboy.com" >/html/www/oldboy.html
6.编写负载均衡配置文件(lb01服务器)
vim /ete/nginx/nginx.conf
配置文件内容如下
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
upstream oldboy {
server 10.0.0.7:80;
server 10.0.0.8:80;
server 10.0.0.9:80;
}
server {
listen 80;
7.2.9 测试验证(lb01服务器)
curl -H host:www.oldboy.com 10.0.0.5/oldboy.html