扩展多台相同的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中break与last的区别详析
Mar 31 Servers
centos8安装nginx1.9.1的详细过程
Aug 02 Servers
NGINX 权限控制文件预览和下载的实现原理
Jan 18 Servers
Nginx+Windows搭建域名访问环境的操作方法
Mar 17 Servers
Apache Pulsar结合Hudi构建Lakehouse方案分析
Mar 31 Servers
排查Tomcat进程假死的问题
May 06 Servers
nginx 添加http_stub_status_module模块
May 25 Servers
windows server 2016 域环境搭建的方法步骤(图文)
Jun 25 Servers
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
Jun 25 Servers
TaiShan 200服务器安装Ubuntu 18.04的图文教程
Jun 28 Servers
Nginx使用ngx_http_upstream_module实现负载均衡功能示例
Aug 05 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
长波知识介绍
2021/03/01 无线电
PHP脚本数据库功能详解(中)
2006/10/09 PHP
深入浅析Yii admin的权限控制
2016/08/31 PHP
php在linux环境中如何使用redis详解
2020/12/15 PHP
js中继承的几种用法总结(apply,call,prototype)
2013/12/26 Javascript
jquery获取选中的文本和值的方法
2014/07/08 Javascript
原生javascript实现简单的datagrid数据表格
2015/01/02 Javascript
JavaScript中函数(Function)的apply与call理解
2015/07/08 Javascript
JavaScript的模块化开发框架Sea.js上手指南
2016/05/12 Javascript
javascript实现将数字转成千分位的方法小结【5种方式】
2016/12/11 Javascript
微信小程序 五星评分(包括半颗星评分)实例代码
2016/12/14 Javascript
JavaScript事件处理程序详解
2017/09/19 Javascript
javascript数组定义的几种方法
2017/10/06 Javascript
vue组件传递对象中实现单向绑定的示例
2018/02/28 Javascript
浅谈手写node可读流之流动模式
2018/06/01 Javascript
一个简单的node.js界面实现方法
2018/06/01 Javascript
代码整洁之道(重构)
2018/10/25 Javascript
Vue.extend实现挂载到实例上的方法
2019/05/01 Javascript
python函数参数*args**kwargs用法实例
2013/12/04 Python
跟老齐学Python之类的细节
2014/10/13 Python
在Python中使用Mako模版库的简单教程
2015/04/08 Python
python实现12306抢票及自动邮件发送提醒付款功能
2018/03/08 Python
TensorFlow实现卷积神经网络CNN
2018/03/09 Python
python按照多个条件排序的方法
2019/02/08 Python
浅谈python的输入输出,注释,基本数据类型
2019/04/02 Python
pandas中的数据去重处理的实现方法
2020/02/10 Python
Python filter过滤器原理及实例应用
2020/08/18 Python
CSS3 Notes: -webkit-box-reflect实现倒影的实例
2016/12/08 HTML / CSS
美特斯邦威官方商城:邦购网
2016/10/13 全球购物
中学教师自我鉴定
2014/02/07 职场文书
分公司负责人任命书
2014/06/04 职场文书
八一建军节营销活动方案
2014/08/31 职场文书
和谐家庭事迹材料
2014/12/20 职场文书
《进击的巨人》新联动CM 兵长强势出击兽巨人
2022/04/05 日漫
Java 关于String字符串原理上的问题
2022/04/07 Java/Android
苹果的回收机器人可以通过拆解iPhone获取大量的金和铜并外公布了环境保护最新进展
2022/04/21 数码科技