实现Web服务器之间使用同一个MYSQL和相同的网页配置文件的方法
发布时间:2020-04-15 16:42:41
来源:亿速云
阅读:133
作者:三月
栏目:数据库
亿速云负载均衡(Cloud Load Balancer)是对多台云服务器进行流量分发的服务。亿速云负载均衡可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。亿速云负载均衡服务通过设置虚拟服务地址(VIP),将位于同一地域的多台云服务器资源虚拟成一个高性能、高可用的应用服务池。根据应用指定的方式,将来自客户端的网络请求分发到云服务器池中。亿速云负载均衡服务会检查云服务器池中云服务器实例的健康状态,自动隔离异常状态的实例,从而解决了云服务器的单点问题,同时提高了应用的整体服务能力。今天亿速云给大家介绍下实现Web服务器之间使用同一个MYSQL和相同的网页配置文件的方法
前言:
用NFS、LAMP、BIND结合的方法,应对网络中访问量增大而导致云服务器负载运行的情况。以实现Web服务器之间使用同一个MYSQL和相同的网页配置文件。
实验环境:
HostNameIP规划
nfs.preferred.com192.168.1.6NFS
ns.preferred.com192.168.1.5
mysql.preferred.com192.168.1.4MYSQL
www.preferred.com192.168.1.3WEB
www.preferred.com192.168.1.2WEB
实验拓扑:
实验步骤:
一、搭建NFS以下操作在nfs.preferred.com服务器上实现[root@localhost ~]# yum install nfs-utils -y
[root@localhost ~]# rpm -qa | grep nfs-utils --color
nfs-utils-1.2.3-39.el6.x86_64
创建共享目录并配置nfs文件[root@localhost~]# mkdir /mydata
[root@localhost~]# mkdir /webdata
[root@localhost~]# cd /webdata/
[root@localhost webdata]# unzip wordpress-3.2.1-zh_CN.zip &> /dev/null
[root@localhost webdata]# chmod -R 777 wordpress
[root@localhost webdata]# ls -l
drwxrwxrwx 5 root root 4096 Oct 11 2016 wordpress
-rw-r--r-- 1 root root 4372680 Oct 11 2016 wordpress-3.2.1-zh_CN.zip
[root@localhost webdata]# vim /etc/exports
/mydata 192.168.1.4(rw,no_root_squash)
/webdata 192.168.1.2(rw,no_root_squash) 192.168.1.3(rw,no_root_squash)
[root@localhost ~]# service rpcbind start
注:rpcbind是一个RPC服务,主要是在nfs共享的时候负责通知客户端、服务器nfs端口号。
[root@localhost ~]# service nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS mountd: [ OK ]
Starting NFS daemon: [ OK ]
Starting RPC idmapd: [ OK ]
[root@localhost ~]# showmount -e 192.168.1.6
Export list for 192.168.1.6:
/webdata 192.168.1.3,192.168.1.2
/mydata 192.168.1.4
二、搭建DNS以下操作在ns.preferred.com服务器上实现[root@localhost ~]# yum install bind -y | tail -n 5
Installed:
bind.x86_64 32:9.8.2-0.47.rc1.el6_8.1
Complete!
[root@localhost ~]# vim /etc/named.rfc1912.zones
zone "preferred.com" IN {
type master;
file "preferred.com.zone";
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "192.168.1.5.zone";
};
[root@localhost ~]# vim /var/named/preferred.com.zone
$TTL 86400
$ORIGIN preferred.com.
@ IN SOA ns.preferred.com admin.preferred.com (
2016101001
1D
5M
7D
1D )
IN NS ns
ns IN A 192.168.1.5
www IN A 192.168.1.2
www IN A 192.168.1.3
nfs IN A 192.168.1.6
[root@localhost ~]# vim /var/named/192.168.1.5.zone
$TTL 86400
@ IN SOA ns.preferred.com. admin.preferred.com (
2016101001
1H
5M
7D
1D )
IN NS ns.preferred.com.
5 IN PTR ns.preferred.com.
2 IN PTR www.preferred.com.
3 IN PTR www.preferred.com.
6 IN PTR nfs.preferred.com.
[root@localhost ~]# systemctl restart named
[root@localhost ~]# dig -t A www.preferred.com @192.168.1.5
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.4 <<>> -t A www.preferred.com @192.168.1.5
;; global options: +cmd
;; Got answer:
;; ->>HEADER<
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.preferred.com.INA
;; ANSWER SECTION:
www.preferred.com.86400INA192.168.1.2
www.preferred.com.86400INA192.168.1.3
;; AUTHORITY SECTION:
preferred.com.86400INNSns.preferred.com.
;; ADDITIONAL SECTION:
ns.preferred.com.86400INA192.168.1.5
;; Query time: 0 msec
;; SERVER: 192.168.1.5#53(192.168.1.5)
;; WHEN: Tue Oct 11 04:22:36 EDT 2016
;; MSG SIZE rcvd: 111
[root@localhost ~]# dig -x 192.168.1.2 @192.168.1.5
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.4 <<>> -x 192.168.1.2 @192.168.1.5
;; global options: +cmd
;; Got answer:
;; ->>HEADER<
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;2.1.168.192.in-addr.arpa.INPTR
;; ANSWER SECTION:
2.1.168.192.in-addr.arpa. 86400INPTRwww.preferred.com.
;; AUTHORITY SECTION:
1.168.192.in-addr.arpa.86400INNSns.preferred.com.
;; ADDITIONAL SECTION:
ns.preferred.com.86400INA192.168.1.5
;; Query time: 0 msec
;; SERVER: 192.168.1.5#53(192.168.1.5)
;; WHEN: Tue Oct 11 04:23:57 EDT 2016
;; MSG SIZE rcvd: 117
三、搭建MYSQL以下操作在mysql.preferred.com服务器上实现[root@localhost ~]# mkdir /mydata/
[root@localhost ~]# mount -t nfs 192.168.1.6:/mydata/ /mydata/
[root@localhost ~]# groupadd -r mysql
[root@localhost ~]# useradd -r -g mysql -s /sbin/nologin mysql
[root@localhost ~]# cd /usr/local/
[root@localhost local]# ln -sv /root/mariadb-5.5.43-linux-x86_64 mysql
"mysql" -> "/root/mariadb-5.5.43-linux-x86_64"
[root@localhost local]# cd mysql/
[root@localhost mysql]# ls
bin COPYING.LESSER EXCEPTIONS-CLIENT INSTALL-BINARY man README share support-files
COPYING data include lib mysql-test scripts sql-bench
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/mydata/
Installing MariaDB/MySQL system tables in '/mydata' ...
161010 13:33:59 [Note] ./bin/mysqld (mysqld 5.5.43-MariaDB) starting as process 2183 ...
OK
Filling help tables...
161010 13:33:59 [Note] ./bin/mysqld (mysqld 5.5.43-MariaDB) starting as process 2191 ...
OK
...
[root@localhost mysql]# ls /mydata/
aria_log.00000001 aria_log_control mysql performance_schema test
[root@localhost mysql]# mkdir /etc/mysql/
[root@localhost mysql]# cp support-files/my-large.cnf /etc/mysql/my.cnf
[root@localhost mysql]# vim /etc/mysql/my.cnf
datadir = /mydata
innodb_file_per_table = on
skip_name_resolve = on
[root@localhost mysql]# service mysqld start
Starting MySQL... [确定]
[root@localhost mysql]# ss -tnl | grep 3306
LISTEN 0 50 *:3306 *:* *:*
[root@localhost mysql]# mysql
-bash: mysql: command not found
注:尝试登陆MYSQL却报错,不要紧张。这是因为/usr/local/bin目录下确实mysql导致,只需要建立一个软连接即可解决。
[root@localhost ~]# ln -sv /usr/local/mysql/bin/mysql /usr/bin/
"/usr/bin/mysql" -> "/usr/local/mysql/bin/mysql"
[root@localhost ~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 115
Server version: 5.5.43-MariaDB-log MariaDB Server
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> CREATE DATABASE pre;
Query OK, 1 rows affected (0.00 sec)
MariaDB [(none)]> GRANT ALL ON pre.* TO 'jds'@'%' IDENTIFIED BY 'redhat';
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
四、搭建WEB以下操作在www.preferred.com(192.168.1.2)服务器上实现[root@localhost ~]# yum install httpd php-mysql php -y | tail -n 10
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Importing GPG key 0xC105B9DE:
Userid: CentOS-6 Key (CentOS 6 Official Signing Key)
Package: centos-release-6-5.el6.centos.11.1.x86_64 (@anaconda-CentOS-201311272149.x86_64/6.5)
From: /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
php-cli.x86_64 0:5.3.3-48.el6_8 php-common.x86_64 0:5.3.3-48.el6_8
php-pdo.x86_64 0:5.3.3-48.el6_8
Updated:
httpd.x86_64 0:2.2.15-54.el6.centos
Dependency Updated:
httpd-tools.x86_64 0:2.2.15-54.el6.centos
Complete!
[root@localhost ~]# mkdir /webdata
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
ServerName www.preferred.com:80
ServerName www.preferred.com
DocumentRoot /webdata/wordpress
[root@localhost ~]# service rpcbind start
[root@localhost ~]# mount -t nfs 192.168.1.6:/webdata /webdata
[root@localhost ~]# ls /webdata/
wordpress wordpress-3.2.1-zh_CN.zip
[root@localhost ~]# service httpd start
Starting httpd: [ OK ]
接下来安装wordpress,没有的话可以自己去下载一个https://wordpress.org/download/[root@localhost ~]# cd /webdata/wordpress
[root@localhost wordpress]# ls
index.php wp-app.php wp-config.php wp-includes wp-pass.php wp-settings.php
license.txt wp-atom.php wp-config-sample.php wp-links-opml.php wp-rdf.php wp-signup.php
readme.html wp-blog-header.php wp-content wp-load.php wp-register.php wp-trackback.php
wp-activate.php wp-comments-post.php wp-cron.php wp-login.php wp-rss2.php xmlrpc.php
wp-admin wp-commentsrss2.php wp-feed.php wp-mail.php wp-rss.php
[root@localhost wordpress]# cp wp-config-sample.php wp-config.php
[root@localhost wordpress]# vim wp-config.php
// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
/** WordPress 数据库的名称 */
define('DB_NAME', 'pre');
/** MySQL 数据库用户名 */
define('DB_USER', 'jds');
/** MySQL 数据库密码 */
define('DB_PASSWORD', 'redhat');
/** MySQL 主机 */
define('DB_HOST', '192.168.1.4');
/** 创建数据表时默认的文字编码 */
define('DB_CHARSET', 'utf8');
/** 数据库整理类型。如不确定请勿更改 */
define('DB_COLLATE', '');
[root@localhost ~]# mysql -ujds -predhat -h 192.168.1.4
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.4' (113)
注:遇到这个问题怎么个人都不好了,在MYSQL服务器上取消防火墙也不行。所以尝试在MYSQL服务器的防火墙上加上端口的允许。
[root@localhost ~]# iptables -L -n | grep 3306
[root@localhost ~]# iptables -I INPUT -s 0/0 -p tcp --dport 3306 -j ACCEPT
[root@localhost mysql]# iptables -L -n | grep 3306
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306
[root@localhost ~]# mysql -ujds -predhat -h 192.168.1.4
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 116
Server version: 5.5.43-MariaDB-log MariaDB Server
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| pre |
| test |
+--------------------+
5 rows in set (0.00 sec)
测试访问正常!!!
以下操作在www.preferred.com(192.168.1.3)服务器上实现[root@localhost ~]# yum install httpd php-mysql php -y
[root@localhost ~]# mkdir /webdata
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
ServerName www.preferred.com:80
ServerName www.preferred.com
DocumentRoot /webdata/wordpress
[root@localhost ~]# service rpcbind start
[root@localhost ~]# mount -t nfs 192.168.1.6:/webdata /webdata
[root@localhost ~]# ls /webdata/
wordpress wordpress-3.2.1-zh_CN.zip
[root@localhost ~]# service httpd start
Starting httpd:
[ OK ]
先用WEB(192.168.1.3)进行测试。发布一条文章
用WEB(192.168.1.2)进行测试。现在访问看看
看到了在WEB(192.168.1.3)上发布的文章,我们在WEB(192.168.1.2)上也发布一篇
最后我们在WEB(192.168.1.3)上查看
至此,我们实验的目的已经达到。
如果大家还有什么地方需要了解的可以在亿速云官网找我们的专业技术工程师的,亿速云技术工程师在行业内拥有十几年的经验了,所以会比小编回答的更加详细专业。亿速云官网链接www.yisu.com