扩展多台相同的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 相关文章推荐
Apache站点配置SSL强制跳转443
Mar 09 Servers
nginx处理http请求实现过程解析
Mar 31 Servers
Nginx使用X-Accel-Redirect实现静态文件下载的统计、鉴权、防盗链、限速等
Apr 04 Servers
Linux中Nginx的防盗链和优化的实现代码
Jun 20 Servers
Nginx反向代理至go-fastdfs案例讲解
Aug 02 Servers
openstack云计算keystone组件工作介绍
Apr 20 Servers
Windows server 2012 R2 安装IIS服务器
Apr 29 Servers
在Windows Server 2012上安装 .NET Framework 3.5 所遇到的问题
Apr 29 Servers
解决IIS7下无法绑定https主机的问题
Apr 29 Servers
Nginx利用Logrotate实现日志分割
May 20 Servers
阿里云服务器部署RabbitMQ集群的详细教程
Jun 01 Servers
Nginx报404错误的详细解决方法
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
Javascript document.referrer判断访客来源网址
2020/05/15 Javascript
JQuery 学习技巧总结
2010/05/21 Javascript
js实现GridView单选效果自动设置交替行、选中行、鼠标移动行背景色
2010/05/27 Javascript
js汉字排序问题 支持中英文混排,兼容各浏览器,包括CHROME
2011/12/20 Javascript
JS下拉框内容左右移动效果的具体实现
2013/07/10 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/25 Javascript
JavaScript设计模式之观察者模式(发布者-订阅者模式)
2014/09/24 Javascript
通过XMLHttpRequest和jQuery实现ajax的几种方式
2015/08/28 Javascript
JS实现自动固定顶部的悬浮菜单栏效果
2015/09/16 Javascript
详解vue-cli3使用
2018/08/14 Javascript
使用nodejs实现JSON文件自动转Excel的工具(推荐)
2020/06/24 NodeJs
微信小程序实现点击生成随机验证码
2020/09/09 Javascript
Python发送Email方法实例
2014/08/21 Python
Python socket.error: [Errno 98] Address already in use的原因和解决方法
2014/08/25 Python
python中map、any、all函数用法分析
2015/04/21 Python
Python下载懒人图库JavaScript特效
2015/05/28 Python
Python 功能和特点(新手必学)
2015/12/30 Python
python3结合openpyxl库实现excel操作的实例代码
2018/09/11 Python
python3正则提取字符串里的中文实例
2019/01/31 Python
使用Django开发简单接口实现文章增删改查
2019/05/09 Python
PyQt5图形界面播放音乐的实例
2019/06/17 Python
PIL图像处理模块paste方法简单使用详解
2019/07/17 Python
Python绘制全球疫情变化地图的实例代码
2020/04/20 Python
python实现Oracle查询分组的方法示例
2020/04/30 Python
Staples英国官方网站:办公用品一站式采购
2017/10/06 全球购物
英国游戏机和游戏购物网站:365games.co.uk
2018/06/18 全球购物
全球领先的在线cosplay服装商店:RoleCosplay
2020/01/18 全球购物
《九色鹿》教学反思
2014/02/27 职场文书
产品发布会策划方案
2014/05/12 职场文书
公务员政审单位鉴定材料
2014/05/16 职场文书
简易版租房协议书范本
2014/10/13 职场文书
2014年采购员工作总结
2014/11/18 职场文书
铁人观后感
2015/06/16 职场文书
珍爱生命主题班会
2015/08/13 职场文书
php+laravel 扫码二维码签到功能
2021/05/15 PHP
PostgreSQL逻辑复制解密原理解析
2022/09/23 PostgreSQL