阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

部署LAMP+NFS实现双Web服务器负载均衡

438次阅读
没有评论

共计 5781 个字符,预计需要花费 15 分钟才能阅读完成。

部署 LAMP+NFS 实现双 Web 服务器负载均衡

一、需求分析

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 博客的各种数据

三、架构图

部署 LAMP+NFS 实现双 Web 服务器负载均衡

四、步骤概述

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 www.conf.default www.conf
vim www.conf
    listen = 172.18.68.23:9000              #设置监听的IP,注释监听所有,只写端口监听鄋
    ;listen.allowed_clients = 127.0.0.1.    #把这项注释掉,分号为注释
systemctl start php-fpm

4. 配置 NFS 服务器

NFS 服务器的配置特别简单,最重要的时配置完后就赶紧将 NFS 共享目录挂载至 web1、web2、PHP 服务器的网站根目录。

mkdir -pv /app/nfs/web    # 创建共享目录,此目录为网站的根目录,实现统一管理。
vim /etc/exports
  /app/nfs/web 172.18.0.0/16(ro,sync,root_squash,no_all_squash)
# 允许 172.18.0.1 网段挂载 NFS 共享,如果要提高安全性应该控制到主机
  • Web1 服务器

    mount 172.18.68.24:/app/nfs/web /app/httpd24/htdocs        #/app/httpd24/htdocs 为 httpd.conf 中的根目录
  • Web2 服务器

    mount 172.18.68.24:/app/nfs/web /app/httpd24/htdocs        #/app/httpd24/htdocs 为 httpd.conf 中的根目录
  • PHP 应用服务器

    mkdir /app/httpd24/htdocs                                  #PHP 没有根目录,/app/httpd24/htdocs 为 NFS 的挂载点。
    mount 172.18.68.24:/app/nfs/web /app/httpd24/htdocs        

5. 配置 Apache 实现动静分离

  • 加载模块

    vim /etc/httpd24/httpd.conf
        LoadModule proxy_module modules/mod_proxy.so                       # 取消两行的注释,加载两模块
        LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
  • 动静分离
    在配置文件的末尾追加这四行,利用代理将所有以.php 结尾的文件交给 PHP 服务器处理,实现动静分离

    vim /etc/httpd24/httpd.conf
      AddType application/x-httpd-php .php
      AddType application/x-httpd-php-source .phps
      ProxyRequests Off 关闭正向代理
      ProxyPassMatch  ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1  
    # 要确保 PHP 服务器中有这个目录,(在 NFS 中创建这个目录,且将 NFS 挂载至此目录。)
    apachectl restart

6. 部署 wordpress 博客

因为 web1、web2、PHP 服务器都使用 NFS 共享的目录作为根目录,所以只需要将 wordpress 博客系统部署在 NFS 服务器上即可让所有服务器得到同样的数据。

  • 安装博客程序

    # 解压博客程序
    tar xvf wordpress-4.8.1-zh_CN.tar.gz  -C /app/httpd24/htdocs
    cd /app/httpd24/htdocs
    mv wordpress/ blog/
    # 创建配置文件
    cd /app/httpd24/htdocs/blog/
    cp wp-config-sample.php  wp-config.php
  • 配置数据库
    wordpress 需要数据库,所以在此先创建一个 wordpress 专用的数据库,且创建授权用户。

    mysql -uroot -pCentOS
    create datebase wpdb;
    grant all on wpdb.* to wpuser@'172.18.68.%' identified by 'centos';
  • 配置 wordpress 连接数据库

    # 编辑配置文件,写入创建的 IP、数据库、与用户性
    vim wp-config.php
    define('DB_NAME', 'wpdb');
    #
    /** MySQL 数据库用户名 */
    define('DB_USER', 'wpuser');
    #
    /** MySQL 数据库密码 */
    define('DB_PASSWORD', 'centos');
    #
    /** MySQL 主机 */
    define('DB_HOST', 'localhost');

7. 登录测试

  • 浏览器打开,http://IP,设置管理员的用户名密码,点击安装
    部署 LAMP+NFS 实现双 Web 服务器负载均衡
  • 输入用户名密码,即可进入博客网站的后台页面。
    部署 LAMP+NFS 实现双 Web 服务器负载均衡
  • 默认风格的博客页面首页,还是比较好看滴、
    部署 LAMP+NFS 实现双 Web 服务器负载均衡

8. 配置 DNS 负载均衡

购买了单独域名后,在后台控制面板中添加两条 A 记录,就可以达到负载均衡。

到这里基于 LAMP+NFS 架构的双 Web 服务器、动静分离网站就搭建完成了。
双 WEB 服务器架构的好处在于如果有一台服务器宕机不会是整个网站瘫痪。
NFS 共享存储的好处在于,DNS 负载均衡后,不论用户被分配到哪台主机上,都能看到相同的页面得到相同的结果。

下面关于 LAMP 相关 的内容你可能也喜欢

LAMP 平台安装 Xcache 和 Memcached 加速网站运行  http://www.linuxidc.com/Linux/2015-06/118835.htm

CentOS 7 下搭建 LAMP 平台环境  http://www.linuxidc.com/Linux/2015-06/118818.htm

CentOS 7.3 下配置 LAMP 实现 WordPress  http://www.linuxidc.com/Linux/2017-07/145947.htm

Ubuntu 14.04 配置 LAMP+phpMyAdmin PHP(5.5.9)开发环境  http://www.linuxidc.com/Linux/2014-10/107924.htm

LAMP 结合 NFS 构建小型博客站点  http://www.linuxidc.com/Linux/2015-08/121029.htm

CentOS7 下安装部署 LAMP 环境  http://www.linuxidc.com/Linux/2016-04/130653.htm

CentOS 7 上安装(LAMP)服务 Linux,Apache,MySQL,PHP  http://www.linuxidc.com/Linux/2017-05/143868.htm

Ubuntu Server 14.04 LTS 下搭建 LAMP 环境图文详解  http://www.linuxidc.com/Linux/2016-12/138758.htm

Ubuntu Server 16.04 下配置 LAMP 环境 http://www.linuxidc.com/Linux/2016-12/138757.htm

在 Ubuntu 17.04 上安装搭建 LAMP 组件环境  http://www.linuxidc.com/Linux/2017-07/145644.htm

CentOS 6.7 编译安装 LAMP 详解 http://www.linuxidc.com/Linux/2017-03/141244.htm

Ubuntu 16.04 搭建 LAMP 开发环境 http://www.linuxidc.com/Linux/2016-10/136327.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-10/147740.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计5781字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7984701
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地 大家好,我是星哥,今天教大家在飞牛 NA...
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...
【开源神器】微信公众号内容单篇、批量下载软件

【开源神器】微信公众号内容单篇、批量下载软件

【开源神器】微信公众号内容单篇、批量下载软件 大家好,我是星哥,很多人都希望能高效地保存微信公众号的文章,用于...
我用AI做了一个1978年至2019年中国大陆企业注册的查询网站

我用AI做了一个1978年至2019年中国大陆企业注册的查询网站

我用 AI 做了一个 1978 年至 2019 年中国大陆企业注册的查询网站 最近星哥在 GitHub 上偶然...
星哥带你玩飞牛NAS-1:安装飞牛NAS

星哥带你玩飞牛NAS-1:安装飞牛NAS

星哥带你玩飞牛 NAS-1:安装飞牛 NAS 前言 在家庭和小型工作室场景中,NAS(Network Atta...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击 PHP-FPM(FastCGl Process M...
手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...
星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的 NAS 中! 大家对「数据安全感」的需求越来越高 ...
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...