扩展多台相同的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配置proxy_pass中url末尾带/与不带/的区别详解
Mar 31 Servers
Nginx服务器如何设置url链接
Mar 31 Servers
Nginx 根据URL带的参数转发的实现
Apr 01 Servers
教你快速开启Apache SkyWalking的自监控
Apr 25 Servers
图文详解Nginx版本平滑升级方案
Sep 15 Servers
iSCSI服务器CHAP双向认证配置
Apr 01 Servers
Windows server 2012 配置Telnet以及用法详解
Apr 28 Servers
使用 Docker Compose 构建复杂的多容器App
Apr 30 Servers
项目中Nginx多级代理是如何获取客户端的真实IP地址
May 30 Servers
Linux下搭建SFTP服务器的命令详解
Jun 25 Servers
腾讯云服务器部署前后分离项目之前端部署
Jun 28 Servers
centos环境下nginx高可用集群的搭建指南
Jul 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数组应该有多大的分析
2009/07/30 PHP
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
2011/04/18 PHP
php通过修改header强制图片下载的方法
2015/03/24 PHP
YII框架页面缓存操作示例
2019/04/29 PHP
php探针使用原理和技巧讲解
2019/09/17 PHP
IE与Firefox下javascript getyear年份的兼容性写法
2007/12/20 Javascript
javascript 表格排序和表头浮动效果(扩展SortTable)
2009/04/07 Javascript
JavaScript 对象链式操作测试代码
2010/04/25 Javascript
js中点击空白区域时文本框与隐藏层的显示与影藏问题
2013/08/26 Javascript
js实现弹窗插件功能实例代码分享
2013/12/12 Javascript
实例分析js和C#中使用正则表达式匹配a标签
2014/11/26 Javascript
JavaScript中的普通函数与构造函数比较
2015/04/07 Javascript
vue.js实现含搜索的多种复选框(附源码)
2017/03/23 Javascript
Angular.js中控制器之间的传值详解
2017/04/24 Javascript
详解vue 组件之间使用eventbus传值
2017/10/25 Javascript
Node.js应用设置安全的沙箱环境
2018/04/23 Javascript
js中的 || 与 && 运算符详解
2018/05/24 Javascript
详解vue-router数据加载与缓存使用总结
2018/10/29 Javascript
JS简单数组排序操作示例【sort方法】
2019/05/17 Javascript
简单谈谈javascript高级特性
2019/09/04 Javascript
element的el-table中记录滚动条位置的示例代码
2019/11/06 Javascript
Vuex中实现数据状态查询与更改
2019/11/08 Javascript
JavaScript命令模式原理与用法实例详解
2020/03/10 Javascript
微信小程序语音同步智能识别的实现案例代码解析
2020/05/29 Javascript
Python中functools模块函数解析
2017/03/12 Python
一看就懂得Python的math模块
2018/10/21 Python
Django框架使用内置方法实现登录功能详解
2019/06/12 Python
使用python爬取微博数据打造一颗“心”
2019/06/28 Python
Django微信小程序后台开发教程的实现
2020/06/03 Python
Django nginx配置实现过程详解
2020/09/10 Python
纽约21世纪百货官网:Century 21
2016/08/27 全球购物
可爱的童装和鞋子:Fabkids
2019/08/16 全球购物
Douglas意大利官网:购买香水和化妆品
2020/05/27 全球购物
高三语文教学反思
2014/01/15 职场文书
园林技术个人的自我评价
2014/02/15 职场文书
2015新员工试用期工作总结
2014/12/12 职场文书