在越南做一个网站怎么做,dede如何做手机网站,自学php制作网站有哪些软件,图片分享网站源码1、基于 CentOS 7 构建 LVS-DR 群集。 2、配置nginx负载均衡。 一、 LVS-DR 群集
1、LVS-DR工作原理
LVS-DR#xff08;Linux Virtual Server Director Server#xff09;
名称缩写说明 虚拟IP地址(Virtual IP Address) VIPDirector用于向客户端计算机提供服务的IP地址真实…1、基于 CentOS 7 构建 LVS-DR 群集。 2、配置nginx负载均衡。 一、 LVS-DR 群集
1、LVS-DR工作原理
LVS-DRLinux Virtual Server Director Server
名称缩写说明 虚拟IP地址(Virtual IP Address) VIPDirector用于向客户端计算机提供服务的IP地址真实IP地址(Real Server IP Address)RIP在集群下面节点上使用IP地址Director的IP地址(Director IP Address)DIPDirector用于连接内外网络的IP地址客户端主机IP地址(Client IP Address)CIP客户端用户计算机请求集群服务器的IP地址该地址用作发送集群的请求的源IP地址 首先来自客户端计算机 CIP 的请求被发送到 Director 的 VIP 。 接着Director 使用相同的 VIP 目的 IP 地址将 请求发送到集群节点或真实服务器。 然后集群某个节点将回复该数据包并将该数据包直接发送到客户端计算机不经过director 并且以此回复数据包使用的目的 VIP 地址作为源 IP 地址。 因此实际上 是客户计算机被“ 欺骗 ” 了客户计算机始终认为它正与同一台计算机对话而实际上它正在发送请求数 据包给一台计算机LB 并从另一台计算机 RS 接收回复的数据包。 2、LVS-DR模式的特点 1所有集群节点 RS 必须和 Director 在相同的物理网段即同一个局域网中 2所有客户端入站而不是出站请求由 Director 首先接收并转发给集群节点 RS 3集群节点 RS 通常来说最好带外部 IP 而不使用 Director 及某固定机器作为默认网关以便将数据包直 接回复给客户端计算机且不会产生回包的瓶颈 4所有集群节点 RS 上必须在 lo 网卡上绑定 VIP 地址以便验证通过目的 IP 非 RS 的数据包 5由于所有集群节点 RS 上必须在 lo 网卡上绑定 VIP 地址因此带来 arp 问题即集群节点 RS 默认会相 应发往Director VIP 的数据包。因此要对所有集群节点 RS 做 ARP 抑制处理把响应 VIP 的请求交给 LVS Director 6很多操作系统都可以用在集群内部的 RS 真实服务器上只要该操作系统能够实现 ARP 隐藏如 Windows linux unix 7 LVS/DR 模式不需要开启调度器转发功能这点和 LVS/NAT 模式是不同的。 8 LVS/DR Director 服务器数量 100 台可以比 LVS-NAT Director 服务器数量 10-20 台承受更多的 并发请求和转发更多的服务器数量。 3、部署LVS-DR集群
主机IP地址DR服务器192.168.186.100web服务器1192.168.186.103web服务器2192.168.186.102客户端192.168.206.100vip虚拟换回 192.168.186.200
1配置负载调度器192.168.186.100
#关闭防火墙
[rootlocalhost ~]# systemctl stop firewalld
[rootlocalhost ~]# setenforce 0#安装ipvsadm工具
[rootlocalhost ~]# yum install ipvsadm -y#配置虚拟IP地址VIP192.168.186.200
[rootlocalhost ~]# cd /etc/sysconfig/network-scripts/
[rootlocalhost network-scripts]# cp ifcfg-ens33 ifcfg-ens33:0[rootlocalhost network-scripts]# vim ifcfg-ens33:0
#删除UUIDdns与网关注意子网
NAMEens33:0
DEVICEens33:0
ONBOOTyes
IPADDR192.168.186.200
NETMASK255.255.255.255#重启网络服务、启动网卡
[rootlocalhost network-scripts]# systemctl restart network
[rootlocalhost network-scripts]# ifup ifcfg-ens33:0##调整/proc响应参数 对于 DR 群集模式来说由于 LVS 负载调度器和各节点需要共用 VIP 地址应该关闭 Linux 内核的重定向参数响应服务器不是一台路由器那么它不会发送重定向所以可以关闭该功能
[rootlocalhost network-scripts]# vim /etc/sysctl.conf
net.ipv4.ip_forward 0
net.ipv4.conf.all.send_redirects 0
net.ipv4.conf.default.send_redirects 0
net.ipv4.conf.ens33.send_redirects 0#刷新配置
[rootlocalhost network-scripts]# sysctl -p
net.ipv4.ip_forward 0
net.ipv4.conf.all.send_redirects 0
net.ipv4.conf.default.send_redirects 0
net.ipv4.conf.ens33.send_redirects 0#加载模块
[rootlocalhost network-scripts]# modprobe ip_vs
[rootlocalhost network-scripts]# cat /proc/net/ip_vs
IP Virtual Server version 1.2.1 (size4096)
Prot LocalAddress:Port Scheduler Flags- RemoteAddress:Port Forward Weight ActiveConn InActConn#配置负载分配策略并启动服务
[rootlocalhost network-scripts]# ipvsadm-save /etc/sysconfig/ipvsadm
[rootlocalhost network-scripts]# systemctl start ipvsadm#手工执行配置添加LVS服务并增加两台RS
##添加真实服务器-a
##指定VIP地址及TCP端口-t
##指定RIP地址及TCP端口 -r
##指定DR模式-g
[rootlocalhost network-scripts]# ipvsadm -C
[rootlocalhost network-scripts]# ipvsadm --set 30 5 60
[rootlocalhost network-scripts]# ipvsadm -A -t 192.168.186.200:80 -s rr
[rootlocalhost network-scripts]# ipvsadm -a -t 192.168.186.200:80 -r 192.168.186.103:80 -g
[rootlocalhost network-scripts]# ipvsadm -a -t 192.168.186.200:80 -r 192.168.186.102:80 -g#保存设置
[rootlocalhost network-scripts]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size4096)
Prot LocalAddress:Port Scheduler Flags- RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.186.200:80 wlc- 192.168.186.103:80 Route 1 0 0 - 192.168.186.102:80 Route 1 0 0 2第一台web节点服务器192.168.186.103
#关闭防火墙
[rootweb1 ~]# systemctl stop firewalld
[rootweb1 ~]# setenforce 0#安装httpd开启服务
[rootweb1 ~]# yum install httpd -y
[rootweb1 ~]# systemctl start httpd #创建一个站点文件并写入内容
[rootweb1 ~]# echo this is 192.168.186.103 /var/www/html/index.html #添加环回网卡修改环回网卡名IP地址子网掩码
[rootweb1 ~]# cd /etc/sysconfig/network-scripts/
[rootweb1 network-scripts]# cp ifcfg-lo ifcfg-lo:0
[rootweb1 network-scripts]# vim ifcfg-lo:0
DEVICElo:0
IPADDR192.168.186.200
NETMASK255.255.255.255
NETWORK127.0.0.0#重启网络
[rootweb1 network-scripts]# systemctl restart network##添加路由
[rootweb1 network-scripts]# ifup lo:0
[rootweb1 network-scripts]# ifconfig lo:0
lo:0: flags73UP,LOOPBACK,RUNNING mtu 65536inet 192.168.186.200 netmask 255.255.255.255loop txqueuelen 1000 (Local Loopback)
[rootweb1 network-scripts]# route add -host 192.168.169.200 dev lo:0##调整proc相应参数
[rootweb1 network-scripts]vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore 1
net.ipv4.conf.all.arp_announce 2
net.ipv4.conf.default.arp_ignore 1
net.ipv4.conf.default.arp_announce 2[rootweb1 network-scripts]sysctl -p
3第二台web节点服务器192.168.186.102
#关闭防火墙
[rootweb2 ~]# systemctl stop firewalld
[rootweb2 ~]# setenforce 0#安装httpd开启服务
[rootweb2 ~]# yum install httpd -y
[rootweb2 ~]# systemctl start httpd#创建站点文件
[rootweb2 ~]# echo this is 192.168.186.102 /var/www/html/index.html#添加环回网卡修改环回网卡名IP地址子网掩码
[rootweb2 ~]# cd /etc/sysconfig/network-scripts/
[rootweb2 network-scripts]# cp ifcfg-lo ifcfg-lo:0
[rootweb2 network-scripts]# vim ifcfg-lo:0
DEVICElo:0
IPADDR192.168.185.200
NETMASK255.255.255.255
NETWORK127.0.0.0#设置路由
[rootweb2 network-scripts]# route add -host 192.168.186.200 dev lo:0
[rootweb2 network-scripts]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.186.2 0.0.0.0 UG 100 0 0 ens33
192.168.186.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.186.200 0.0.0.0 255.255.255.255 UH 0 0 0 lo#开机执行命令
[rootweb2 network-scripts]# vim /etc/rc.d/rc.local
/usr/sbin/route add -host 192.168.59.188 dev lo:0#调整 proc 响应参数
[rootweb2 network-scripts]# vim /etc/sysctl.conf
[rootweb2 network-scripts]# sysctl -p
net.ipv4.conf.all.arp_ignore 1
net.ipv4.conf.all.arp_announce 2
net.ipv4.conf.default.arp_ignore 1
net.ipv4.conf.default.arp_announce 2
net.ipv4.conf.lo.arp_ignore 1
net.ipv4.conf.lo.arp_announce 2
4客户端测试 5测试 二、nginx负载均衡
1、反向代理工作过程 从图 6-2可知若用户A 、用户B 、用户C 同时对反向代理服务器发送请求反向代理服务器则根据其内部的具体配置将用户的请求分发给后端服务器进行处理并将后端服务器处理后的响应结果作为自己的响应结果返回给用户。 反向代理服务器的整个处理过程用户并不知情 。因此从上述对代理和反向代理的介绍可以总结出两者的特性主要有以下几点 1安全性 正向代理的客户端能够在隐藏自身信息的同时访问任意网站这给网络安 全带来了极大的威胁。因 此 在使用时必须采取安全措施以确保仅为经过授权的客 户端用户提供服务 而反向代理的客户端用户只能通过外网来访问代理服务器并且用户并不知道自己访问的是一个代理服务器好处就是反向代理将真正的处理放在内网中有效地提高了网络安全性。 2功能性 正 向代理的主要用途是为在防火墙内的局域网用户提供访问 Int rnet途径 而反向代理的主要用途是将防火墙后的服务器提供给 Internet 用户访问还可以为多个后端服务器提供负载均衡功能、缓存功能等。 2、反向代理服务配置
主机IP地址反向代理服务器192.168.186.100web服务器1192.168.186.101web服务器2192.168.186.102
1安装Nginx
#配置虚拟机ip网卡等
[rootlocalhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33#安装C语言编译库和依赖包使用gcc
[rootlocalhost ~]# yum install gcc gcc-c -y
[rootlocalhost ~]# yum install pcre-devel openssl-devel -y#解压执行安装即可
[rootlocalhost ~]# tar zxvf nginx-1.22.0.tar.gz
[rootlocalhost nginx-1.22.0]# ./configure --prefix/usr/local/nginx
[rootlocalhost nginx-1.22.0]# make
[rootlocalhost nginx-1.22.0]# make install#启动nginx及配置nginx开机启动
[rootlocalhost nginx-1.22.0]# cd /usr/local/nginx/sbin/
[rootlocalhost sbin]# ./nginx #编写一个脚本称谓系统服务
[rootlocalhost sbin]# vim /usr/lib/systemd/system/nginx.service
[Unit]
Descriptionnginx - web server
Afternetwork.target remote-fs.target nss-lookup.target[Service]
Typeforking
PIDFile/usr/local/nginx/logs/nginx.pid
ExecStartPre/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload/usr/local/nginx/sbin/nginx -s reload #重启nginx
ExecStop/usr/local/nginx/sbin/nginx -s stop #停止
ExecQuit/usr/local/nginx/sbin/nginx -s quit #优雅停止nginx
PrivateTmptrue[Install]
WantedBymulti-user.target#重新加载系统服务
[rootlocalhost sbin]# systemctl daemon-reload #启动服务
[rootlocalhost sbin]# systemctl status nginx 2配置反向代理
[rootlocalhost sbin]# vim /etc/nginx/conf.d/vhost.conf
#配置域名为www.wangp.com的虚拟主机
server {listen 80;server_name www.wangp.com;#域名www.wangp.com的请求全部转发到Web服务器192.168.186.101location / {proxy_pass http://192.168.186.101;}
}#配置域名为www.openlab.com的虚拟主机
server {listen 80;server_name www.openlab.com;#域名www.openlab.com的请求全部转发到Web服务器192.168.186.102location / {proxy_pass http://192.168.186.102;}
}
3配置hosts文件 编辑 C: \ Window s\Sys t em32\drivers \etc 目录下的 hosts 文件实现网站的域名访问 4在web1服务器和web2服务器编写index.html
[rootweb1 ~]# mkdir /www/
[rootweb1 ~]# echo Welcome to web1 server:192.168.186.101 /www/index.html
[rootweb1 ~]# cd /www/
[rootweb1 www]# ls
index.html
[rootweb1 www]# cat index.html
Welcome to web1 server:192.168.186.101[rootweb2 ~]# mkdir /www/
[rootweb2 ~]# echo Welcome to web2 server:192.168.186.102 /www/index.html
[rootweb2 ~]# cd /www/
[rootweb2 www]# ls
index.html
[rootweb2 www]# cat index.html
Welcome to web2 server:192.168.186.102
3、负载均衡 负载均衡 load balance 就是将负载分摊到多个操作单元上执行从而提高服务的可用性和响应速度带给用户更好的体验。 图6-5演示了负载均衡服务器地工作方式其中客户端用户A和B同时请求了域名为test. ng. test 的网站负载均衡服务器 (192. 168. 78. 会根据具体配置进行不同的分配。 这里假设用户 的请求被分配到 Web 服务器 1(192. 168. 78. 128 中处理用户 的请求被 分配到另一个闲置的 Web 服务器 2(192. 168. 78. 200 中处理 通过负载均衡可以将一台 服务器的工作扩展到多台服务器中执行提高整个网站的负载能力 4、负载均衡地配置
1准备服务器
主机IP地址负载均衡服务器192.168.186.100web服务器1192.168.186.101web服务器2192.168.186.102
2配置一般轮询负载均衡
#配置域名为www.openlab1.com的虚拟主机
[rootlocalhost ~]# vim /etc/nginx/conf.d/nginx.confserver{listen 80;server_name www.openlab1.com;location /{proxy_pass http://web_server;}
}
#配置负载均衡服务器组
upstream web_server{server 192.168.186.101;server 192.168.186.102;
}
3在web1服务器和web2服务器编写index.html
[rootweb1 ~]# echo Welcome to web1 server:192.168.186.101 /root/index.html
[rootweb1 ~]# echo Welcome to web2 server:192.168.186.102 /root/index.html
4配置hosts文件 5测试