一、需求分析
1.前端需支持更大的访问量,单台Web服务器已无法满足需求了,则需扩容Web服务器;
2.虽然动态内容可交由后端的PHP服务器执行,但静态页面还需要Web服务器自己解析,那是否意味着多台Web服务器都需要在各自的系统中都存有一份静态页面数据呢?那么如果能将静态页面集中存放,所有Web服务器都来集中地取文件,对于文件的一致性就有了保障,这个集中地就叫做“文件共享服务器”;
二、需求实现:
1.web1充当http服务器和DNS解析服务器,客户端到web1和web2的请求,如果是静态资源请求通过php主机的NFS服务挂载的存储返回结果
2.web1和web2对于客户端动态资源请求都反向代理到后端php服务器进行执行后返回结果
3.web1和web2实现DNS轮询,客户端访问博客网站是负载均衡的。
4.建立wordpress博客
5.数据库存储wordpress博客的各种数据
三、架构图
四、步骤概述
1.部署LAMP环境、配置NFS服务器
2.web1、web2、php服务器全部挂载NFS共享目录为网站根目录
3.配置httpd实现动静分离
4.配置DNS实现负载均衡
五、详细过程
1.web1、web2服务器编译安装Apache
# 安装依赖包
yum groupinstall
"development tools"
yum install openssl-devel expat-devel pcre-devel
#
# 解压文件
tar xvf apr
-1.6.2.tar.gz
tar xvf apr-util
-1.6.0.tar.gz
tar xvf httpd
-2.4.27.tar.bz2
cp -r apr
-1.6.2 httpd
-2.4.27/srclib/apr
cp -r apr-util
-1.6.0 httpd
-2.4.27/srclib/apr-util
#
# 编译安装
cd httpd
-2.4.27/
./configure \
--prefix=/app/httpd24 \
--sysconfdir=/etc/httpd24 \
--enable-so --enable-ssl \
--enable-rewrite --with-zlib \
--with-pcre --with-included-apr \
--enable-modules=most \
--enable-mpms-shared=all \
--with-mpm=prefork
#
make && make install
#
#配置环境变量
vim /etc/profile.d/lamp.sh
PATH=/app/httpd24/bin/:$
PATH
. /etc/profile.d/lamp.sh
#
# 启动服务
apachectl start
2.数据库服务器二进制安装mariadb
# 解压文件
tar xvf mariadb
-10.2.8-linux-x86_64.tar.gz -C
/usr/local/
cd
/usr/local
#
# 创建软连接,mariadb在/usr/local下必须名为MySQL,可以创建软连接,可以改名
ln -s mariadb
-10.2.8-linux-x86_64/ mysql
#
# 创建用户
useradd -r -m -d
/app/mysqldb -s
/sbin/nologin mysql
cd mysql/
#
# 初始化数据库
scripts/mysql_install_db --datadir=
/app/mysqldb --user=mysql
#
# 创建配置文件
mkdir
/etc/mysql
cp support-files/my-large.cnf
/etc/mysql/my.cnf
#
# 修改配置文件,指定数据库存放路径
vim
/etc/mysql/my.cnf
[mysqld]
datadir =
/app/mysqldb
在mysqld下添加这三行
innodb_file_per_table = ON
skip_name_resolve = ON
#
# 复制启动脚本,添加开机自动启动
cp support-files/mysql.server
/etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --list
service mysqld start
#
# 创建日志目录
mkdir
/var/log/mariadb
chown mysql
/var/log
/mariadb/
#
#添加环境变量
vim
/etc/profile.d/lamp.sh
PATH=
/app/httpd24
/bin/:
/usr/local
/mysql/bin/:$PATH
.
/etc/profile.d/lamp.sh
#
#调用安全加固脚本,加固数据库。汉字为每一项的翻译
mysql_secure_installation
是否设置root密码
输入密码
确认密码
是否设置匿名用户
是否允许root远程登录
删除test数据库
现在是否生效
3.PHP应用服务器编译安装PHP7
# 安装依赖包
yum install libxml2-devel bzip2-devel libmcrypt-devel gcc openssl-devel
tar xvf php
-7.1.7.tar.bz2
#
#编译安装
cd php
-7.1.7.tar.bz2
./configure \
--prefix=/app/php \
--enable-mysqlnd \
#mysqlnd 指明Mysql不再本地
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-openssl \
--enable-mbstring \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--enable-sockets \
--enable-fpm \
#用FPM模式
--with-mcrypt \
--with-config-file-path=/etc/php \
--with-config-file-scan-dir=/etc/php.d \
--with-bz2
#
# 创建PHP配置文件
mkdir /etc/php/
cp php.ini-production /etc/php/php.ini
#
# 复制服务脚本,添加开机自动启动
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig --list php-fpm
#
# 创建fpm的配置文件
cd /app/php/etc
cp php-fpm.conf.
default php-fpm.conf
cd /app/php/etc/php-fpm.d/
cp default
vim
listen =
172.18.68.23:
9000
#设置监听的
IP,注释监听所有, 只写端口监听鄋
;listen.allowed_clients =
127.0.0.1. #把这项注释掉,分号为注释
systemctl start php-fpm
4.配置NFS服务器