Fork me on GitHub

通过LVS调度器实现调度到不同的wordpress服务器上去 NAT模型

 

 

  •  VS=虚拟服务器、调度器,负载均衡器
  • RS=真实访问的服务器
  • CIP:客户端IP地址
  • VIP: Virtual serve IP VS外网的IP
  • DIP=内网的IP,主要用于和内网主机通讯
  • RIP=真正的服务器IP

 一、搭建两台RS服务器(以下步骤两台RS服务器都需要执行)

  1、安装http的服务

yum install httpd -y

  2、开启httpd服务,并设置为开机启动

systemctl start httpd 
systemctl enable httpd

  3、在RS服务器上新建测试页面,仅用于后续测试lvs是否成功,可以跳过

echo 192.168.1.4 RS1 > /var/www/html/index.html
echo 192.168.1.5 RS2 > /var/www/html/index.html

  4、防火墙设置(下面任选一种,不设置无法访问,)(所有机器都需要设置,不然会不通的)

    1)、关闭防火墙

systemctl stop firewalld

    2)、设置防火墙规则临时允许80端口

firewall-cmd --zone=public --add-port=80/tcp 

    3)、设置永久允许防火墙80端口

firewall-cmd --zone=public --add-port=80/tcp --permanent 
firewall-cmd --reload

    4)、设置临时允许对应的服务

firewall-cmd --add-service=http

    5)、设置永久允许对应的服务

firewall-cmd --add-service=http --permanent 
firewall-cmd --reload

临时生效,重启就没了,设置服务允许,对应的端口也会允许(此处针对centos7及以上)

  5、修改两台RS服务器的网关为VS服务器内网IP地址

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

GATEWAY=192.168.1.3

  二、搭建VS服务器 内网IP地址192.168.1.3 外网IP地址172.16.8.167  

  1、开启路由转发

vim /etc/sysctl.conf 

net.ipv4.ip_forward=1

  2、路由生效

sysctl -p

  3、返回如下,则表示生效成功,生效成功,其他服务器网关设置为VS服务器的可以通过本台机器访问外网

net.ipv4.ip_forward = 1

  4、安装ipvsadm包

yum install ipvsadm -y

  5、增加集群,指定调度算法 rr 轮循

ipvsadm -A -t 172.16.8.167:80 -s rr

注释:(-A 增加)、(-t,tcp协议)、(172.16.8.35:80,LVS服务器外网IP地址,80web服务的端口号)、(-s rr,指定调度算法rr (轮循),不指定默认,默认wLc)

  6、查看

1)、通过ipvsadm -L 可以列出:

[06:19:30 root@localhost ~]#ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  localhost.localdomain:http rr

2)、ipvsadm -Ln ,数字方式查看,和上面显示http不同直接显示IP地址

[06:20:22 root@localhost ~]#ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.16.8.167:80 rr

  7、增加集群上的RS

ipvsadm -a -t 172.16.8.167:80 -r 192.168.1.4 -m
ipvsadm -a -t 172.16.8.167:80 -r 192.168.1.5 -m

(-a 增加rs)、(-t 集群服务,指明集群服务)、(-r rs 地址)、(-m 指定NAT模型,不加默认DR模型)

  8、查看集群状态

ipvsadm -Ln --stats

  9、查看速率(速度比率)

ipvsadm -Ln --rate

  10、查看ipvs规则

cat /proc/net/ip_vs

  11、查看ipvs连接

cat /proc/net/ip_vs_conn

  12、循环没隔0.5 测试访问,是否是轮循

[06:25:19 root@localhost ~]#while true; do curl 172.16.8.167 ;sleep 0.5 ;done
192.168.1.5 RS2
192.168.1.4 RS1
192.168.1.5 RS2
192.168.1.4 RS1
192.168.1.5 RS2
192.168.1.4 RS1

NAT 模型源地址不变,所有后端的RS服务器可以查看到访问的IP具体来自哪里。

  三、搭建wordpress服务相关的事宜(这一步我都是在单台机器上做的,然后将配置文件复制到其他RS服务器上,也可以同时在RS服务器上做两遍相同的操作)

  1、在RS服务器上安装php模块和php连接mysql的包(两台RS服务器都需要安装)

yum install php-fpm php-mysql -y

  2、在数据库服务器上安装mariadb数据库192.168.1.6

yum install mariadb-server -y

  3、在数据库服务器上启动数据库

systemctl start mariadb

  4、创建数据库并设置权限

mysql -e "create database wpdb;grant all on wpdb.* to wpuser@'192.168.1.%' identified by 'centos'"

   5、在RS服务器上开启php-fpm服务

systemctl start php-fpm

  6、修改RS服务器的http的配置

vi /etc/httpd/conf.d/fcgi.conf
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/$1

  7、我修改了主页面里的index.html,在前面添加了一行index.php,优先找php后缀的

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

  8、重启RS服务器上的服务

systemctl restart httpd php-fpm

  9、在RS服务器上解压wordpress包,解压到/var/www/html下

 cd /var/www/html/
 tar xvf wordpress-5.0.4-zh_CN.tar.gz 

  10、进入wordpress文件夹

cd /var/www/html/wordpress/

  11、复制模板配置文件

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

  12、修改配置文件(第4步时的账号密码)

vi wp-config.php 
/** WordPress数据库的名称 */
define('DB_NAME', 'wpdb');

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

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

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

  13、最好测试一下是否能远程连接数据库,以防后续出问题

客户端只需要安装mariadb 
[root@localhost wordpress]# yum install mariadb -y
[root@localhost wordpress]# mysql -uwpuser -pcentos -h192.168.1.6

   四、复制配置文件到另外一台RS服务器上

 1、复制wordpress程序到另外一台调度机器192.168.1.5

scp -r /var/www/html/wordpress 192.168.1.5:/var/www/html/

2,复制httpd的配置文件

scp /etc/httpd/conf/httpd.conf 192.168.1.5:/etc/httpd/conf/httpd.conf 

3、复制fcgi配置文件

scp /etc/httpd/conf.d/fcgi.conf 192.168.1.5:/etc/httpd/conf.d/fcgi.conf 

4、在另外一台服务器上安装对应的包

yum install php-fpm php-mysql -y

5、重启对应的服务

systemctl restart httpd php-fpm

测试访问即可

posted @ 2021-05-17 19:34  Alex-Lzy  阅读(96)  评论(0编辑  收藏  举报