环境准备:
两台节点部署keepalived,并且设为互为主从,实现高可用。
两台从节点部署nginx以及相关组件,作为真实服务器实现动态网站上线。
一、MASTER(BACKUP)节点下载keepalived并且配置文件。
作为
1) yum -y install keepalived
设置为v1的主节点,v2的从节点
虚拟ip为192.168.253.250
后端真实服务器ip为 192.168.253.146 和 192.168.253.188

[root@localhost ~]# cat /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { # notification_email { # acassen@firewall.loc # failover@firewall.loc # sysadmin@firewall.loc } # notification_email_from Alexandre.Cassen@firewall.loc # smtp_server 192.168.200.1 # smtp_connect_timeout 30 # router_id LVS_DEVEL # vrrp_skip_check_adv_addr # vrrp_strict # vrrp_garp_interval 0 # vrrp_gna_interval 0 } vrrp_instance VI_1 { state MASTER interface ens33 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.253.250 } } vrrp_instance VI_2 { state BACKUP interface ens33 virtual_router_id 52 priority 99 advert_int 1 authentication { auth_type PASS auth_pass 2222 } virtual_ipaddress { 192.168.253.200 } } virtual_server 192.168.253.250 80 { delay_loop 6 lb_algo rr lb_kind DR persistence_timeout 50 protocol TCP real_server 192.168.253.188 80 { weight 1 HTTP_GET { url { path / state_code 200 } connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } } virtual_server 192.168.253.250 80 { delay_loop 6 lb_algo rr lb_kind DR persistence_timeout 50 protocol TCP real_server 192.168.253.146 80 { weight 1 HTTP_GET { url { path / state_code 200 } connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } }
2) 重启keepalived
[root@localhost ~]# systemctl restart keepalived
二、BACKUP(master)节点下载keepalived并且配置文件。
设置为v1的从节点,v2的主节点
虚拟ip为192.168.253.200
后端真实服务器ip也是 192.168.253.146 和 192.168.253.188
3)测试互为主备的两个节点是否设置成功
一台节点执行:systemctl stop keepalived 停掉高可用服务
如果虚拟ip发生漂移说明设置成功。如下:
[root@localhost ~]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:33:f9:60 brd ff:ff:ff:ff:ff:ff inet 192.168.253.168/24 brd 192.168.253.255 scope global dynamic ens33 valid_lft 1338sec preferred_lft 1338sec inet 192.168.253.250/32 scope global ens33 valid_lft forever preferred_lft forever inet 192.168.253.200/32 scope global ens33 valid_lft forever preferred_lft forever
三、在后端服务器上部署lnmp。
1)下载nginx及相关组件.
yum install nginx php php-mysql php-fpm mariadb-server -y
2)编辑nginx配置文件,修改两处
index index.php index.html;
location ~ /.*\.php$ {
fastcgi_pass 127.0.0.1:9000;
include fastcgi.conf;
}
然后重启相关服务
systemctl restart nginx
systemctl restart php-fpm
3)重启maridb并创建数据库,用户和密码。
systemctl restart mariadb
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database baba;
ERROR 1007 (HY000): Can't create database 'baba'; database exists
MariaDB [(none)]> grant all on *.* to ken@'localhost' identified by '1';
4)在/var/www/html上传wordpress包。复制并根据数据库修改库名、用户名密码等。
[root@localhost ~]# cd /var/www/html/ [root@localhost html]# ls index.php wordpress-3.3.1-zh_CN.zip wp-blog-header.php wp-content wp-load.php wp-register.php xmlrpc.php license.txt wp-activate.php wp-comments-post.php wp-cron.php wp-login.php wp-settings.php readme.html wp-admin wp-config.php wp-includes wp-mail.php wp-signup.php wordpress wp-app.php wp-config-sample.php wp-links-opml.php wp-pass.php wp-trackback.php
// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
/** WordPress 数据库的名称 */
define('DB_NAME', 'baba');
/** MySQL 数据库用户名 */
define('DB_USER', 'baba');
/** MySQL 数据库密码 */
define('DB_PASSWORD', '1');
5)使用shell写一个添加回环路由的脚本,并执行。

#!/bin/bash case $1 in start) echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce ifconfig ens33:0 192.168.253.250/32 broadcast 192.168.253.250 up if [ $? -eq 0 ];then route add -host 192.168.253.250 dev ens33:0 fi echo "启动成功" ;; stop) echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce ifconfig ens33:0 down route del -host 192.168.253.250 echo "删除成功" ;; *) echo "usage start|stop" ;; esac
bash 1.sh start
6)主节点查看是否添加到后端集群中
[root@localhost ~]# ipvsadm -L -n IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.253.250:80 rr persistent 50 -> 192.168.253.146:80 Route 1 0 0 -> 192.168.253.188:80 Route 1 0 0
7)使用虚拟ip访问动态网站。