目錄 客戶端配置 路由器配置 配置powerDNS 防火墻 107~109:mysql主從半同步復制 106:布署ProxySQL 105:NFS配置 105:布署wordpress 104:webB安裝apache+php 103:webA安裝apache+php LVS實現(xiàn)web服務的負載均衡
實驗環(huán)境:12臺虛擬機
客戶端配置
網(wǎng)絡(luò)配置:僅主機模式1 cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=f297f992-f824-4489-890c-e237ea9c4a9f
DEVICE=ens33
ONBOOT=no
IPADDR=192.168.88.100
PREFIX=24
GATEWAY=192.168.88.254
DNS1=172.16.23.211
路由器配置
用Linux虛擬機模擬
一個僅主機模式1,一個橋接網(wǎng)卡 網(wǎng)絡(luò)配置
[路由器]$ ip a
#下面是輸出
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:e1:fc:ac brd ff:ff:ff:ff:ff:ffinet 192.168.88.254/24 brd 192.168.88.255 scope global noprefixroute eth0valid_lft forever preferred_lft foreverinet6 fe80::6a7a:d4a:a7ed:75b5/64 scope link noprefixroutevalid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:e1:fc:b6 brd ff:ff:ff:ff:ff:ffinet 172.16.23.254/16 brd 172.16.255.255 scope global noprefixroute eth1valid_lft forever preferred_lft foreverinet6 fe80::9a8a:1c56:7288:a4ca/64 scope link noprefixroutevalid_lft forever preferred_lft forever
開啟ip轉(zhuǎn)發(fā)
echo "net.ipv4.ip_forward=1" > /etc/sysctl.conf
查看
[路由器]$ sysctl -p
net.ipv4.ip_forward = 1
開啟SNAT
[路由器]$ iptables -t nat -A POSTROUTING -s 192.168.88.0/24 ! -d 192.168.88.0/24 -j SNAT --to-source 172.16.23.254
配置powerDNS
IP: 172.16.23.211
安裝包:基于EPEL源
yum install -y pdns pdns-backend-mysql
安裝http + php + mariadb
yum -y install httpd php php-mysql php-mbstring mariadb-server
啟動服務
systemctl start httpd
systemctl start mariadb
配置PowerDNS使用mariadb作為后臺數(shù)據(jù)存儲
#查找到包含launch= 的行,修改并添加下面的內(nèi)容
[powerDNS]$ vim /etc/pdns/pdns.conf
#大概在250行
launch=gmysql
gmysql-host=localhost
gmysql-port=3306
gmysql-dbname=powerdns
gmysql-user=powerdns
gmysql-password=123
創(chuàng)建數(shù)據(jù)庫和帳號給powerDNS用
[powerDNS]$ mysqlMariaDB [(none)]> create database powerdns;
MariaDB [(none)]> grant all privileges on powerdns.* to powerdns@localhost identified by "123";
對,又是5
USE powerdns;
CREATE TABLE domains (id INT AUTO_INCREMENT,name VARCHAR(255) NOT NULL,master VARCHAR(128) DEFAULT NULL,last_check INT DEFAULT NULL,type VARCHAR(6) NOT NULL,notified_serial INT DEFAULT NULL,account VARCHAR(40) DEFAULT NULL,PRIMARY KEY (id)
) Engine=InnoDB;CREATE UNIQUE INDEX name_index ON domains(name);CREATE TABLE records (id BIGINT AUTO_INCREMENT,domain_id INT DEFAULT NULL,name VARCHAR(255) DEFAULT NULL,type VARCHAR(10) DEFAULT NULL,content VARCHAR(64000) DEFAULT NULL,ttl INT DEFAULT NULL,prio INT DEFAULT NULL,change_date INT DEFAULT NULL,disabled TINYINT(1) DEFAULT 0,ordername VARCHAR(255) BINARY DEFAULT NULL,auth TINYINT(1) DEFAULT 1,PRIMARY KEY (id)
) Engine=InnoDB;CREATE INDEX nametype_index ON records(name,type);
CREATE INDEX domain_id ON records(domain_id);
CREATE INDEX recordorder ON records (domain_id, ordername);CREATE TABLE supermasters (ip VARCHAR(64) NOT NULL,nameserver VARCHAR(255) NOT NULL,account VARCHAR(40) NOT NULL,PRIMARY KEY (ip, nameserver)
) Engine=InnoDB;CREATE TABLE comments (id INT AUTO_INCREMENT,domain_id INT NOT NULL,name VARCHAR(255) NOT NULL,type VARCHAR(10) NOT NULL,modified_at INT NOT NULL,account VARCHAR(40) NOT NULL,comment VARCHAR(64000) NOT NULL,PRIMARY KEY (id)
) Engine=InnoDB;CREATE INDEX comments_domain_id_idx ON comments (domain_id);
CREATE INDEX comments_name_type_idx ON comments (name, type);
CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);CREATE TABLE domainmetadata (id INT AUTO_INCREMENT,domain_id INT NOT NULL,kind VARCHAR(32),content TEXT,PRIMARY KEY (id)
) Engine=InnoDB;CREATE INDEX domainmetadata_idx ON domainmetadata (domain_id, kind);CREATE TABLE cryptokeys (id INT AUTO_INCREMENT,domain_id INT NOT NULL,flags INT NOT NULL,active BOOL,content TEXT,PRIMARY KEY(id)
) Engine=InnoDB;CREATE INDEX domainidindex ON cryptokeys(domain_id);CREATE TABLE tsigkeys (id INT AUTO_INCREMENT,name VARCHAR(255),algorithm VARCHAR(50),secret VARCHAR(255),PRIMARY KEY (id)
) Engine=InnoDB;CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);
啟動服務
systemctl start pdns
systemctl enable pdns
安裝httpd和php相關(guān)包
yum -y
install php-devel php-gd php-mcrypt php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mcrypt php-mhash gettext
啟動服務
systemctl restart httpd
下載poweradmin程序,
cd /var/www/html
wget http://downloads.sourceforge.net/project/poweradmin/poweradmin-2.1.7.tgz
解壓縮到相應目錄
tar xvf poweradmin-2.1.7.tgz
mv poweradmin-2.1.7 poweradmin
設(shè)置下權(quán)限
setfacl -Rm u:apache:rwx poweradmin
訪問下面地址,啟動PowerAdmin的網(wǎng)頁安裝向?qū)?#xff1a; http://172.16.23.211/poweradmin/install/ 選英語,下一步。下一步
提供先前配置的數(shù)據(jù)庫詳情,同時為Poweradmin設(shè)置管理員密碼
為Poweradmin創(chuàng)建一個受限用戶
標題說明 Username PowerAdmin用戶名 Password 上述用戶的密碼 Hostmaster 創(chuàng)建SOA記錄指定默認主機管理員 Primary nameserver 主域名服務器 Secondary namesever 輔域名服務器
按照下面頁面說明,在數(shù)據(jù)庫中創(chuàng)建用戶并授權(quán),然后再下一步
示例(根據(jù)你自己的):
[powerDNS]$ mysqlMariaDB [(none)]> GRANT SELECT, INSERT, UPDATE, DELETE ON powerdns.* TO 'poweradmin'@'localhost' IDENTIFIED BY '123';
按下面頁面說明,修改config.in.php文件內(nèi)容,注意不要復制我的,不要復制我的,看你自己的
[powerDNS]$ mv poweradmin/inc/config-me.inc.php poweradmin/inc/config.inc.php[powerDNS]$ vim /var/www/html/poweradmin/inc/config.inc.php18 $db_host = 'localhost';19 $db_port = '3306';20 $db_user = 'powerdns';21 $db_pass = '123';22 $db_name = 'powerdns';23 $db_type = 'mysql';
...26 $db_layer = 'PDO'; # or MDB2
...30 $session_key = 'gKB$t5Qx%l!%$d+M~T$Hv+lABp$nNKKRe{7v}W3SMO0=kN';
...34 $iface_lang = 'en_EN';
...43 $dns_hostmaster = 'powerserver';44 $dns_ns1 = '192.168.99.101';45 $dns_ns2 = '192.168.99.101';
安裝完畢后,刪除install目錄
[powerDNS]$ rm -rf /var/www/html/poweradmin/install/
登錄http://powerdns服務器IP/poweradmin/
username:admin
password:123
這里如果登錄不了提示:Error: You have to install PHP mcrypt extension 解決:
vim /etc/httpd/conf.modules.d/10-php.conf
...5 <IfModule prefork.c>6 LoadModule php5_module modules/libphp5.so7 LoadModule php5_module modules/mcrypt.so8 </IfModule>
來添加個zone
list zone,準備給這個zone添加記錄
添加A記錄,指向172.16.23.200
查看,直接search就可以
看,這就有條記錄了。
防火墻
外網(wǎng)IP:172.16.23.200 內(nèi)網(wǎng)IP:192.168.99.101
配置轉(zhuǎn)發(fā)
[防火墻]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1
[防火墻]# sysctl -P
配置DNAT
iptables -t nat -A PREROUTING -d 172.16.23.200 -p tcp --dport 80 -j DNAT --to-destination 192.168.99.100
107~109:mysql主從半同步復制
107~109主機上都安裝
直接yum安裝吧
yum -y install mariadb-server
啟動
systemctl start mariadb
systemctl enable mariadb
修改配置文件
vim /etc/my.cnf
[ mysqld
] server_id
= 107log_bin
重啟服務
systemctl restart mariadb
創(chuàng)建帳號用于復制
[ 主mysql
] $ mysqlMariaDB
[ ( none
) ] > grant replication slave on *.* to repluser@
'%' identified by
'123' ;
修改配置文件
[ 從1
] $ vim /etc/my.cnf
[ mysqld
] server_id
= 108read_only
重啟服務
systemctl restart mariadb
連接到主服務器
[ 從1
] $ mysqlMariaDB
[ ( none
) ] > change master to
master_host
= '192.168.99.107' ,
master_user
= 'repluser' ,
master_password
= '123' ,
master_port
= 3306,
master_log_file
= 'mariadb-bin.000001' ,
master_log_pos
= 0
;
啟動slave
MariaDB
[ ( none
) ] > start slave
;
查看是否連接上
MariaDB
[ ( none
) ] > show slave status\G
;
*************************** 1. row ***************************Slave_IO_State: Waiting
for master to send eventMaster_Host: 192.168.99.107Master_User: repluserMaster_Port: 3306Connect_Retry: 60Master_Log_File: mariadb-bin.000001Read_Master_Log_Pos: 386Relay_Log_File: mariadb-relay-bin.000002Relay_Log_Pos: 672Relay_Master_Log_File: mariadb-bin.000001Slave_IO_Running: YesSlave_SQL_Running: Yes
.. .
修改配置文件
[ 從2
] $ vim /etc/my.cnf
[ mysqld
] server_id
= 109read_only
重啟服務
systemctl restart mariadb
連接到主服務器
[ 從2
] $ mysqlMariaDB
[ ( none
) ] > change master to
master_host
= '192.168.99.107' ,
master_user
= 'repluser' ,
master_password
= '123' ,
master_port
= 3306,
master_log_file
= 'mariadb-bin.000001' ,
master_log_pos
= 0
;
啟動slave
MariaDB
[ ( none
) ] > start slave
;
查看是否啟動成功
MariaDB
[ ( none
) ] > show slave status\G
;
*************************** 1. row ***************************Slave_IO_State: Waiting
for master to send eventMaster_Host: 192.168.99.107Master_User: repluserMaster_Port: 3306Connect_Retry: 60Master_Log_File: mariadb-bin.000001Read_Master_Log_Pos: 386Relay_Log_File: mariadb-relay-bin.000002Relay_Log_Pos: 672Relay_Master_Log_File: mariadb-bin.000001Slave_IO_Running: YesSlave_SQL_Running: Yes
.. .
在主服務器上安裝主服務器的插件
MariaDB
[ ( none
) ] > INSTALL PLUGIN rpl_semi_sync_master SONAME
'semisync_master.so' ;
啟用這個插件
MariaDB
[ ( none
) ] > set global rpl_semi_sync_master_enabled
= on
;
從服務器安裝的插件不太一樣,看
MariaDB
[ ( none
) ] > INSTALL PLUGIN rpl_semi_sync_slave SONAME
'semisync_slave.so' ;
啟用它
MariaDB
[ ( none
) ] > set global rpl_semi_sync_slave_enabled
= on
;
設(shè)置完還得重啟線程
MariaDB
[ ( none
) ] > stop slave
; MariaDB
[ ( none
) ] > start slave
;
跟107一樣
MariaDB
[ ( none
) ] > INSTALL PLUGIN rpl_semi_sync_slave SONAME
'semisync_slave.so' ;
啟用它
MariaDB
[ ( none
) ] > set global rpl_semi_sync_slave_enabled
= on
;
設(shè)置完還得重啟線程
MariaDB
[ ( none
) ] > stop slave
; MariaDB
[ ( none
) ] > start slave
;
回到主服務器上看,已經(jīng)有2個線程了
MariaDB
[ ( none
) ] > SHOW GLOBAL STATUS LIKE
'%semi%' ;
+--------------------------------------------+-------+
| Variable_name
| Value
|
+--------------------------------------------+-------+
| Rpl_semi_sync_master_clients
| 2
|
.. .
給wordpress創(chuàng)建帳號用
MariaDB
[ ( none
) ] > create database wpdb
;
MariaDB
[ ( none
) ] > grant all privileges on wpdb.* to wpuser@
'192.168.99.%' identified by
"123" ;
創(chuàng)建帳號給ProxySQL監(jiān)控用
MariaDB
[ ( none
) ] > grant replication client on *.* to monitor@
'192.168.99.%' identified by
'123' ;
創(chuàng)建帳號用來ProxySQL訪問的(沒寫錯,這里真的還是4)
MariaDB
[ ( none
) ] > grant all on *.* to sqluser@
'%' identified by
'123' ;
106:布署ProxySQL
安裝前還得配置下官方的yum源 要不就自行下載安裝:https://github.com/sysown/proxysql/releases
[ 106
] $ vim /etc/yum.repos.d/proxysql.repo
[ proxysql_repo
]
name
= ProxySQL YUM repository
baseurl
= http://repo.proxysql.com/ProxySQL/proxysql-1.4.x/centos/\
$releasever
gpgcheck
= 1
gpgkey
= http://repo.proxysql.com/ProxySQL/repo_pub_key
安裝proxySQL
yum clean all yum
install proxysql
啟動proxySQL
systemctl start proxysql
登錄前你還需要
yum -y install mariadb
登錄到proxysql試試
mysql -uadmin -padmin -P6032 -h127.0.0.1
連接成功,簡單看看
MySQL
[ ( none
) ] > show databases
;
+-----+---------------+-------------------------------------+
| seq | name
| file |
+-----+---------------+-------------------------------------+
| 0
| main
| |
| 2
| disk
| /var/lib/proxysql/proxysql.db
|
| 3
| stats
| |
| 4
| monitor
| |
| 5
| stats_history
| /var/lib/proxysql/proxysql_stats.db
|
+-----+---------------+-------------------------------------+
添加你的3臺MySQL主機
MySQL
> insert into mysql_servers
( hostgroup_id,hostname,port
) values
( 10,
'192.168.99.107' ,3306
) ; MySQL
> insert into mysql_servers
( hostgroup_id,hostname,port
) values
( 10,
'192.168.99.108' ,3306
) ; MySQL
> insert into mysql_servers
( hostgroup_id,hostname,port
) values
( 10,
'192.168.99.109' ,3306
) ;
添加上了,可以看看
MySQL
> select * from mysql_servers
;
+--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
| hostgroup_id
| hostname | port
| status
| weight
| compression
| max_connections
| max_replication_lag
| use_ssl
| max_latency_ms
| comment
|
+--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
| 10
| 192.168.99.107
| 3306
| ONLINE
| 1
| 0
| 1000
| 0
| 0
| 0
| |
| 20
| 192.168.99.108
| 3306
| ONLINE
| 1
| 0
| 1000
| 0
| 0
| 0
| |
| 20
| 192.168.99.109
| 3306
| ONLINE
| 1
| 0
| 1000
| 0
| 0
| 0
| |
+--------------+----------------+------+--------+--------+-------------+-----------------+---------------------+---------+----------------+---------+
當然,這2步少不了。加載并保存到磁盤
MySQL
> load mysql servers to runtime
; MySQL
> save mysql servers to disk
;
添加監(jiān)控后端節(jié)點的用戶。
MySQL
[ ( none
) ] > set mysql-monitor_username
= 'monitor' ;
MySQL
[ ( none
) ] > set mysql-monitor_password
= '123' ;
加載到RUNTIME,并保存到disk
MySQL
[ ( none
) ] > load mysql variables to runtime
;
MySQL
[ ( none
) ] > save mysql variables to disk
;
查看監(jiān)控連接是否正常的 (對connect指標的監(jiān)控):(如果connect_error的結(jié)果為NULL則表示正常,看最后2條)
MySQL
[ ( none
) ] > select * from mysql_server_connect_log
;
+----------------+------+------------------+-------------------------+-------------------------------------------------------------------------+
| hostname | port
| time_start_us
| connect_success_time_us
| connect_error
|
+----------------+------+------------------+-------------------------+-------------------------------------------------------------------------+
.. .
| 192.168.99.107
| 3306
| 1564319683112439
| 3277
| NULL
|
| 192.168.99.108
| 3306
| 1564319683641071
| 3359
| NULL
|
| 192.168.99.109
| 3306
| 1564319684169766
| 1197
| NULL
|
+----------------+------+------------------+-------------------------+-------------------------------------------------------------------------+
也可以查看監(jiān)控心跳信息 (對ping指標的監(jiān)控)(如果ping_error的結(jié)果為NULL則表示正常)
MySQL
> select * from mysql_server_ping_log
;
還有其它的,查看read_only和replication_lag的監(jiān)控日志
MySQL
> select * from mysql_server_read_only_log
;
MySQL
> select * from mysql_server_replication_lag_log
;
設(shè)置分組信息
需要修改的是main庫中的mysql_replication_hostgroups表,該表有3個字段:writer_hostgroup寫組,reader_hostgroup讀組,comment備注, 指定寫組的id為10,讀組的id為20
MySQL
> insert into mysql_replication_hostgroups values
( 10,20,
"test" ) ;
加載到RUNTIME生效并保存
MySQL
> load mysql servers to runtime
;
MySQL
> save mysql servers to disk
;
Monitor模塊監(jiān)控后端的read_only值,按照read_only的值將節(jié)點自動移動到讀/寫組
MySQL
> select hostgroup_id,hostname,port,status,weight from mysql_servers
;
+--------------+----------------+------+--------+--------+
| hostgroup_id
| hostname | port
| status
| weight
|
+--------------+----------------+------+--------+--------+
| 10
| 192.168.99.107
| 3306
| ONLINE
| 1
|
| 20
| 192.168.99.108
| 3306
| ONLINE
| 1
|
| 20
| 192.168.99.109
| 3306
| ONLINE
| 1
|
+--------------+----------------+------+--------+--------+
在ProxySQL配置,將用戶sqluser添加到mysql_users表中, default_hostgroup默認組設(shè)置為寫組10,當讀寫分離的路由規(guī)則不符合時,會訪問默認組的數(shù)據(jù)庫
MySQL
> insert into mysql_users
( username,password,default_hostgroup
) values
( 'sqluser' ,
'123' ,10
) ; MySQL
> insert into mysql_users
( username,password,default_hostgroup
) values
( 'wpuser' ,
'123' ,10
) ;
保存生效
MySQL
> load mysql
users to runtime
;
MySQL
> save mysql
users to disk
;
使用sqluser用戶測試是否能路由到默認的10寫組實現(xiàn)讀、寫數(shù)據(jù)。是的,我的寫組就是主服務器,也就是server_id=2的主機。
[ proxySQL
] $ mysql -usqluser -p123 -P6033 -h127.0.0.1 -e
'select @@server_id'
+-------------+
| @@server_id
|
+-------------+
| 106
|
+-------------+
在proxysql上配置路由規(guī)則,實現(xiàn)讀寫分離
與規(guī)則有關(guān)的表:mysql_query_rules和mysql_query_rules_fast_routing,后者是前者的擴展表,1.4.7之后支持 插入路由規(guī)則:將select語句分離到20的讀組,select語句中有一個特殊語句SELECT…FOR UPDATE它會申請寫鎖,應路由到10的寫組
可以這樣寫
[ proxySQL
] $ mysql -uadmin -padmin -P6032 -h127.0.0.1MySQL
> insert into mysql_query_rules
( rule_id,active,match_digest,destination_hostgroup,apply
) VALUES
( 1,1,
'^SELECT.*FOR UPDATE$' ,10,1
) ,
( 2,1,
'^SELECT' ,20,1
) ;
保存生效
MySQL
> load mysql query rules to runtime
;
MySQL
> save mysql query rules to disk
;
注意:因ProxySQL根據(jù)rule_id順序進行規(guī)則匹配,select … for update規(guī)則的rule_id必須要小于普通的select規(guī)則的rule_id
看下生效了沒,已經(jīng)有了2條記錄了
MySQL
[ ( none
) ] > select rule_id,active,match_digest,destination_hostgroup,apply from mysql_query_rules
;
+---------+--------+----------------------+-----------------------+-------+
| rule_id
| active
| match_digest
| destination_hostgroup
| apply
|
+---------+--------+----------------------+-----------------------+-------+
| 1
| 1
| ^SELECT.*FOR UPDATE$
| 10
| 1
|
| 2
| 1
| ^SELECT
| 20
| 1
|
+---------+--------+----------------------+-----------------------+-------+
到這里就可以實現(xiàn)讀寫分離了
在這里強調(diào)下: (1)進入proxySQL管理界面是:mysql -uadmin -padmin -P6032 -h127.0.0.1,端口號是:6032,默認的帳號密碼是admin和admin。 (2)如果使用mysql -usqluser -p123 -P6033 -h127.0.0.1則訪問的是主服務器上的數(shù)據(jù)庫了。
105:NFS配置
安裝
[NFS]$ yum install -y nfs-utils
配置
[NFS]$ mkdir /data/wordpress[NFS]$ vim /etc/exports
/data/wordpress 192.168.99.0/24(rw,all_squash,anonuid=997,anongid=995)#加載
[NFS]$ exportfs -r
啟動服務
[NFS]$ systemctl restart nfs-server
創(chuàng)建用戶
[NFS]$ groupadd -g 995 apache
[NFS]$ useradd -r -u 997 -g 995 -s /sbin/nologin apache
105:布署wordpress
這是在NFS服務器
下載
[NFS]$ cd
[NFS]$ wget ftp://192.168.99.1/Magedu37/files/lamp/wordpress-5.0.3-zh_CN.tar.gz
解壓
[NFS]$ tar xf wordpress-5.0.3-zh_CN.tar.gz -C /data/
刪除包
[NFS]$ rm -f wordpress-5.0.3-zh_CN.tar.gz
[NFS]$ chown -R apache.apache /data/wordpress/
104:webB安裝apache+php
在主機104上安裝php和httpd
[http]$ yum -y install php httpd php-mysql php-mbstring
修改配置文件
[http]$ vim /etc/httpd/conf.d/test.conf<virtualhost *:80>documentroot /data/wordpressservername blog.jibill.com<directory /data/wordpress>require all granted</directory>
</virtualhost>
重啟服務
[http]$ systemctl restart httpd
安裝nfs-utils準備掛載nfs
[http]$ yum -y install nfs-utils
[http]$ mkdir /data/wordpress
[http]$ mount 192.168.99.105:/data/wordpress /data/wordpress
來測試下。注意下方多圖預警 先用hosts文件添加192.168.99.104測試, 可以修改hosts文件
vim /etc/hosts192.168.99.104 blog.jibill.com
103:webA安裝apache+php
在主機103上安裝php和httpd
[httpA]$ yum -y install php httpd php-mysql php-mbstring
修改配置文件
[httpA]$ vim /etc/httpd/conf.d/test.conf<virtualhost *:80>documentroot /data/wordpressservername blog.jibill.com<directory /data/wordpress>require all granted</directory>
</virtualhost>
重啟服務
[httpA]$ systemctl restart httpd
安裝nfs-utils準備掛載nfs
[httpA]$ yum -y install nfs-utils
[httpA]$ mkdir /data/wordpress
[httpA]$ mount 192.168.99.105:/data/wordpress /data/wordpress
LVS實現(xiàn)web服務的負載均衡
設(shè)置路由
[LVS]$ ip route del default via 192.168.99.2[LVS]$ ip route add default via 192.168.99.101
安裝ipvsadm
[LVS]$ yum -y install ipvsadm
設(shè)置回環(huán)網(wǎng)卡地址
[LVS]$ ip a a 192.168.99.100 dev lo
配置LVS
[LVS]$ ipvsadm -A -t 192.168.99.100:80 -s wrr[LVS]$ ipvsadm -a -t 192.168.99.100:80 -r 192.168.99.103 -g -w 1[LVS]$ ipvsadm -a -t 192.168.99.100:80 -r 192.168.99.104 -g -w 1
下面2個設(shè)置在webA和webB上都要配置 4. 設(shè)置webA和webB的路由和arp設(shè)置
ip route del default via 192.168.99.2
ip route add default via 192.168.99.101
配置103和104(web服務A和B),記得,2個主機都要這么配
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
ip a a 192.168.99.100 dev lo
訪問blog.jibill.com/成功
總結(jié)
以上是生活随笔 為你收集整理的综合实验:LVS+LAMP+NFS+MySQL读写分离 的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔 推薦給好友。