扩展多台相同的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设置日志打印post请求参数的方法
Mar 31 Servers
浅谈Nginx 中的两种限流方式
Mar 31 Servers
Nginx缓存设置案例详解
Sep 15 Servers
Nginx+Tomcat负载均衡集群的实现示例
Oct 24 Servers
Apache Pulsar结合Hudi构建Lakehouse方案分析
Mar 31 Servers
Tomcat starup.bat 脚本实现开机自启动
Apr 20 Servers
Windows Server 2012 修改远程默认端口3389的方法
Apr 28 Servers
Windows Server 2012 R2 磁盘分区教程
Apr 29 Servers
nginx设置资源请求目录的方式详解
May 30 Servers
V Rising 服务器搭建图文教程
Jun 16 Servers
shell进度条追踪指令执行时间的场景分析
Jun 16 Servers
VMware虚拟机安装 Windows Server 2022的详细图文教程
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
Laravel用户授权系统的使用方法示例
2018/09/16 PHP
用Div仿showModalDialog模式菜单的效果的代码
2007/03/05 Javascript
Javascript 二维数组
2009/11/26 Javascript
理解Javascript_03_javascript全局观
2010/10/11 Javascript
jquery实现文本框鼠标右击无效以及不能输入的代码
2010/11/05 Javascript
基于jquery的跟随屏幕滚动代码
2012/07/24 Javascript
原生js和jQuery实现淡入淡出轮播效果
2015/12/25 Javascript
bootstrap布局中input输入框右侧图标点击功能
2016/05/16 Javascript
Jquery遍历select option和添加移除option的实现方法
2016/08/26 Javascript
详解Vuejs2.0 如何利用proxyTable实现跨域请求
2017/08/03 Javascript
使用vue-cli导入Element UI组件的方法
2018/05/16 Javascript
《javascript少儿编程》location术语总结
2018/05/27 Javascript
JS原生带缩略图的图片切换效果
2018/10/10 Javascript
浅析vue-router中params和query的区别
2019/12/24 Javascript
vue+elementUI 实现内容区域高度自适应的示例
2020/09/26 Javascript
微信小程序实现天气预报功能(附源码)
2020/12/10 Javascript
Python判断列表是否已排序的各种方法及其性能分析
2016/06/20 Python
Python的collections模块中的OrderedDict有序字典
2016/07/07 Python
Python使用迭代器捕获Generator返回值的方法
2017/04/05 Python
Python中字典与恒等运算符的用法分析
2019/08/22 Python
在Python中字符串、列表、元组、字典之间的相互转换
2019/11/15 Python
详解Python中import机制
2020/09/11 Python
Python Socket多线程并发原理及实现
2020/12/11 Python
html5 canvas绘制放射性渐变色效果
2018/01/04 HTML / CSS
欧洲著名的珠宝和手表网上商城:uhrcenter
2017/04/10 全球购物
卡骆驰德国官方网站:Crocs德国
2019/03/29 全球购物
抽象类和接口的区别
2012/09/19 面试题
教育科学研究生自荐信
2013/10/09 职场文书
生产班组长岗位职责
2014/01/05 职场文书
学雷锋先进个人事迹
2014/05/26 职场文书
2015婚礼主持词开场白
2015/05/28 职场文书
python神经网络编程之手写数字识别
2021/05/08 Python
MySQL索引知识的一些小妙招总结
2021/05/10 MySQL
NGINX 权限控制文件预览和下载的实现原理
2022/01/18 Servers
Python机器学习应用之基于线性判别模型的分类篇详解
2022/01/18 Python
2021年国产动漫公司排行前十名,玄机科技上榜,第二推出过铠甲勇士
2022/03/18 杂记