LVS-小型架构-搭建过程

负载均衡介绍

负载均衡的妙用

负载均衡(Load Balance)集群提供了一种廉价、有效、透明的方法,来扩展网络设备和服务器的负载、带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

ü 单台计算机无法承受大规模的并发访问或数据流量了,此时需要搭建负载均衡集群把流量分摊到多台节点设备上分别处理,即减少用户等待响应的时间又提升了用户体验;

ü 7*24小时的服务保证,任意一个或多个有限后端节点设备宕机,不能影响整个业务的运行。

为什么要用lvs

n 工作在网络模型的7层,可以针对http应用做一些分流的策略,比如针对域名、目录结构,Nginx单凭这点可利用的场合就远多于LVS了。

n 最新版本的Nginx也支持4层TCP负载,曾经这是LVS比Nginx好的地方。

n Nginx对网络稳定性的依赖非常小,理论上能ping通就就能进行负载功能,这个也是它的优势之一,相反LVS对网络稳定性依赖比较大。

n Nginx安装和配置比较简单,测试起来比较方便,它基本能把错误用日志打印出来。LVS的配置、测试就要花比较长的时间了,LVS对网络依赖比较大。

那为什么要用lvs呢?

ü 简单一句话,当并发超过了Nginx上限,就可以使用LVS了。

ü 日1000-2000W PV或并发请求1万以下都可以考虑用Nginx。

ü 大型门户网站,电商网站需要用到LVS。

架构图

根据图准备8台主机,并设置各自的网络信息

网络配置文件

vim /etc/sysconfig/network-scripts/ifcfg-ens33

路由设置

route add default gw x .x. .x. x

IP增加

ip a a x.x.x.x dev ens33|lo

备注:

lvs调度器和RS公网IP10段IP添加在lo回环网卡上,增加可用性,断网ip不会丢失。

 

安装包

在各自主机上安装相应的包(根据生产需求安装所需的包)

lvs:yum install ipvsadm -y
web1:yum install httpd,nfs-utils,  php-fpm ,  php-mysql -y
web2:yum install httpd,  nfs-utils,  php-fpm ,   php-mysql -y
NFS:yum install bind -y
MySQL:yum install mariadb -y
启动所有服务

DNS主机设置

1、编辑配置文件
 vim /etc/named.conf
注释掉就可改为any也可
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };

2、修改区域文件

vim /etc/named.rfc1912.zones
zone "liuxiaosi.com.cn" IN {
type master;
file "liuxiaosi.com.cn.zone";
};

3、建立这个区域文件对应的信息

cd /var/named/
vim liuxiaosi.com.cn.zone

$TTL 1D
@ IN SOA dns1 admin.liuxiaosi.com.cn. ( 1 1D 3H 1W 2D )

NS dns1
dns1 A 192.168.43.57
www A 10.0.0.100

4、更改下文件属性

chgrp named liuxiaosi.com.cn.zone
chmod 640 liuxiaosi.com..cn.zone

路由主机设置

开启路由转发
vim /etc/sysctl.conf(编辑这个文件)
          net.ipv4.ip_forward = 1

LVS调度器设置

加lvs策略
ipvsadm -A -t 10.0.0.100:80 -s rr
ipvsadm -a -t 10.0.0.100:80 -r 192.168.43.27 -g
ipvsadm -a -t 10.0.0.100:80 -r 192.168.43.37 -g
备注:模式根据情况来选择 rr wrr ...

apache设置

两台主机同样的设置
1、告诉apache,.php的交给factcgi处理

vim /etc/httpd/conf.d/php.conf

       proxyrequests off
       proxypassmatch "^/(.*\.php)$" fcgi://127.0.0.1:9000/var/www/html/$1

2、修改httpd配置文件让他优先找php文件

vim /etc/httpd/conf/httpd.conf
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>

3、重启服务
systemctl restart httpd
4、关闭应答和宣称
[root@web1 network-scripts]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@web1 network-scripts]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@web1 network-scripts]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@web1 network-scripts]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
备注:因为lvs和RS主机都有相同的vip地址,当客户端发来请求,到达路由-交换机-它会问谁是10.0.0.100这时候lvs主机回答“我是”,RS主机不回答。

MySQL主机设置

至于mysql安全设置这里就不多说了,前几篇有介绍。

1、创建数据库与用户(用于wordpress)

mysql -pcentos -e 'create database wpdb1;grant all on wpdb1.* to wpuser1@"192.168.43.27" identified by "centos"'

mysql -pcentos -e 'grant all on wpdb1.* to wpuser1@"192.168.43.37" identified by "centos"'

2、可以查看是否创建成功

mysql -pcentos -e "select user,host from mysql.user"

 

NFS主机设置

1、解压wordpress并改名

tar xf wordpress-4.9.4-zh_CN.tar.gz -C /app/
cd /app/

mv wordpress/ www

2、把www目录共享出来

vim /etc/exports.d/www.exports
       /app/www 192.168.43.0/24(rw,all_squash,anonuid=48,anongid=48)
     备注:所有用户进来全部压榨ID为48的用户(也就是apache)
     因为本主机没有48账号,建一个
     useradd -u 48 apache

3、把共享的文件所属者与所属组改为apache

chown -R apache.apache www/

4、修改wordpress配置文件

cp wp-config-sample.php wp-config.php -p

vim wp-config.php

    define('DB_NAME', 'wpdb1');

/** MySQL数据库用户名 */
define('DB_USER', 'wpuser1');

/** MySQL数据库密码 */
define('DB_PASSWORD', 'centos');

/** MySQL主机 */
define('DB_HOST', '192.168.43.57');

5、让共享生效

exportfs -r
查看
exportfs -v

 

挂载到apache主机

echo 192.168.43.47:/app/www      /var/www/html/wordpress    nfs    defaults   0 0   >>/etc/fstab

mount -a
备注:两台主机同样的设置,如过出现挂载不上,请安装nfs服务即可,主要是加载mount.nfs模块。

到此完成,注意:

网络配置,网关、路由、ip地址,先测试好网络再进行其他的配置。

测试

客户机:
DNS指向我们搭建的DNS主机地址
网关指向路由172段地址

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注