扩展多台相同的Web服务器


Posted in Servers onApril 01, 2021

1.为什么扩展多台web节点

  • 单台服务器能抗住的访问量是有限的,配置多台web服务器能提升更高的访问速度

2.扩展多台web解决了什么问题

  • 单台web节点如有故障,会导致业务down机
  • 多台web节点能保证业务的持续稳定,扩展性能高
  • 多台web节点能有效的提升用户的访问网站的速度
  • 多台web节点技术架构组成,如下图
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dMYbGHGY-1616924617012)(00446E42E0EC4FEDAC3244002CD22BC4)]

3.扩展web环境

主机名称 应用环境 外网地址 内网地址
web01 nginx+php 10.0.0.7 172.16.1.7
web02 nginx+php 10.0.0.8 172.16.1.8
db01 mysql 10.0.0.51 172.16.1.51

4.快速扩展一台web节点详细步骤

  1. 准备一个web02的服务器172.16.1.8
  2. 把web01的nginx配置文件推送到web02上
[root@web01 ~]# scp /etc/yum.repos.d/nginx.repo 172.16.1.8:/etc/yum.repos.d/
[root@web01 ~]# rsync -avz --delete /etc/nginx/ 172.16.1.8:/etc/nginx/
  1. 安装nginx
[root@web02 ~]# yum -y install nginx
  1. 安装php-fpm
[root@web02 ~]# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
[root@web02 ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
[root@web02  ]# yum -y install php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb --nogpgcheck
  1. 修改php-fpm的配置文件
[root@web02 code]# vim /etc/php-fpm.d/www.conf
  1. 将web01的code目录导入web02中
[root@web01 ~]# rsync -avz /code 172.16.1.8:/
  1. 启动php服务和nginx服务
[root@web02 code]# systemctl start php-fpm.service 
[root@web02 code]# systemctl start nginx

拆分静态资源到独立服务器

1.为什么拆分静态资源至独立服务器

  • 当后端的web节点出现多台时,会导致用户上传的图片,视屏附件等内容仅上传至一台web服务器,那么其他的web服务器则无法访问到该图片

2.增加nfs解决的问题

  • 保证了多台web节点静态一致.
  • 有效的节省多台web节点的存储空间
  • 统一管理静态资源,便于后期推送至CDN静态资源加速

3.环境准备

主机名称 应用环境 外网地址 内网地址
web01 nginx+php 10.0.0.7 172.16.1.7
web02 nginx+php 10.0.0.8 172.16.1.8
db01 mysql 10.0.0.51 172.16.1.51
nfs nfs 10.0.0.31 172.16.1.31

4.nfs端操作步骤

  1. 安装并配置nfs
[root@nfs ~]# yum -y install nfs-utils
[root@nfs ~]# cat /etc/exports
/data/wordpress 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
/data/zh 	172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
/data/phpshe	 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
  1. 创建共享目录,并授权
[root@nfs ~]# mkdir -p /data/{wordpress,zh,phpshe}
[root@nfs01 ~]# chown -R www.www /data/
  1. 启动nfs服务,并加入开机自启
[root@nfs01 ~]# systemctl restart nfs-server
[root@nfs01 ~]# systemctl enable nfs-server

5.web02端操作步骤

  1. web02节点安装nfs,然后使用showmount查看服务端共享资源
[root@web02 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data/phpshe    172.16.1.0/24
/data/zh        172.16.1.0/24
/data/wordpress 172.16.1.0/24
  1. wordpress静态资源存放的位置
[root@web01 ~]#ll /wrodpress/wp-content/uploads/
  1. 推送数据到nfs服务器上
[root@web02 ~]# rsync -avz /code/wordpress/wp-content/uploads/ 172.16.1.31:/data/wordpress
  1. web02客户端执行挂载操作
[root@web01 wp-content]# mount -t nfs 172.16.1.31:/data/wordpress /wordpress/wp-content/uploads/
Servers 相关文章推荐
nginx优化的六点方法
Mar 31 Servers
Shell脚本一键安装Nginx服务自定义Nginx版本
Mar 20 Servers
Docker官方工具docker-registry案例演示
Apr 13 Servers
docker compose 部署 golang 的 Athens 私有代理问题
Apr 28 Servers
讨论nginx location 顺序问题
May 30 Servers
Linux磁盘管理方法介绍
Jun 01 Servers
基于docker安装zabbix的详细教程
Jun 05 Servers
shell进度条追踪指令执行时间的场景分析
Jun 16 Servers
Windows Server 2022 超融合部署(图文教程)
Jun 25 Servers
nginx之queue的具体使用
Jun 28 Servers
Win10系统搭建ftp文件服务器详细教程
Aug 05 Servers
修改Nginx配置返回指定content-type的方法
Sep 23 Servers
Nginx安装完成没有生成sbin目录的解决方法
nginx location优先级的深入讲解
Mar 31 #Servers
Nginx反爬虫策略,防止UA抓取网站
Mar 31 #Servers
Mac环境Nginx配置和访问本地静态资源的实现
Mar 31 #Servers
Nginx域名转发使用场景代码实例
Mar 31 #Servers
提升Nginx性能的一些建议
Nginx反向代理及负载均衡如何实现(基于linux)
Mar 31 #Servers
You might like
PHP新手上路(九)
2006/10/09 PHP
php验证手机号码(支持归属地查询及编码为UTF8)
2013/02/01 PHP
laravel自定义分页效果
2017/07/23 PHP
PHP使用PDO操作sqlite数据库应用案例
2019/03/07 PHP
Laravel如何自定义command命令浅析
2019/03/23 PHP
在Laravel5中正确设置文件权限的方法
2019/05/22 PHP
Yii Framework框架使用PHPExcel组件的方法示例
2019/07/24 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
jQuery TextBox自动完成条
2009/07/22 Javascript
推荐40个非常优秀的jQuery插件和教程【系列三】
2011/11/09 Javascript
JS实现可拖曳、可关闭的弹窗效果
2015/09/26 Javascript
JavaScript的代码编写格式规范指南
2015/12/07 Javascript
AngularJS入门教程之MVC架构实例分析
2016/11/01 Javascript
vue-router实现webApp切换页面动画效果代码
2017/05/25 Javascript
Angular X中使用ngrx的方法详解(附源码)
2017/07/10 Javascript
weex slider实现滑动底部导航功能
2017/08/28 Javascript
vue.js添加一些触摸事件以及安装fastclick的实例
2018/08/28 Javascript
Python中使用 Selenium 实现网页截图实例
2014/07/18 Python
Python 实现简单的电话本功能
2015/08/09 Python
Python中死锁的形成示例及死锁情况的防止
2016/06/14 Python
Python随机数用法实例详解【基于random模块】
2017/04/18 Python
django站点管理详解
2017/12/12 Python
python机器学习之神经网络(一)
2017/12/20 Python
python获取url的返回信息方法
2018/12/17 Python
django中forms组件的使用与注意
2019/07/08 Python
django获取from表单multiple-select的value和id的方法
2019/07/19 Python
Python找出列表中出现次数最多的元素三种方式
2020/02/24 Python
关于Theano和Tensorflow多GPU使用问题
2020/06/19 Python
英国最大的在线床超市:Bed Star
2019/01/24 全球购物
仓库管理专业个人自我评价范文
2013/11/11 职场文书
银行财务部实习生的自我鉴定
2013/11/27 职场文书
2014年安全生产责任书
2014/07/22 职场文书
解除劳动合同证明书模板
2014/11/20 职场文书
公司宣传语大全
2015/07/13 职场文书
总经理致辞
2015/07/29 职场文书
感恩的心主题班会
2015/08/12 职场文书