扩展多台相同的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
Mac环境Nginx配置和访问本地静态资源的实现
Mar 31 Servers
Nginx工作原理和优化总结。
Apr 02 Servers
Apache Calcite 实现方言转换的代码
Apr 24 Servers
详解nginx进程锁的实现
Jun 14 Servers
iSCSI服务器CHAP双向认证配置
Apr 01 Servers
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
Apr 29 Servers
Linux中文件的基本属性介绍
Jun 01 Servers
超越Nginx的Web服务器caddy优雅用法
Jun 21 Servers
Windows server 2012 NTP时间同步的实现
Jun 25 Servers
Nginx跨域问题解析与解决
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
一个颜色轮换的简单例子
2006/10/09 PHP
PHP 手机归属地查询 api
2010/02/08 PHP
PHP中key和current,next的联合运用实例分析
2016/03/29 PHP
利用php输出不同的心形图案
2016/04/22 PHP
thinkphp框架下404页面设置 仅三步
2016/05/14 PHP
js 深拷贝函数
2008/12/04 Javascript
情人节之礼 js项链效果
2012/02/13 Javascript
JS的千分位算法实现思路
2013/07/31 Javascript
JS 获取select(多选下拉)中所选值的示例代码
2013/08/02 Javascript
jquery操作checkbox实现全选和取消全选
2014/05/02 Javascript
JavaScript不使用prototype和new实现继承机制
2014/12/29 Javascript
使用js画图之圆、弧、扇形
2015/01/12 Javascript
js控制页面的全屏展示和退出全屏显示的方法
2015/03/10 Javascript
jquery实现邮箱自动填充提示功能
2015/11/17 Javascript
Vue.js实现一个漂亮、灵活、可复用的提示组件示例
2017/03/17 Javascript
浅谈在koa2中实现页面渲染的全局数据
2017/10/09 Javascript
修改Nodejs内置的npm默认配置路径方法
2018/05/13 NodeJs
vue-cli项目中使用公用的提示弹层tips或加载loading组件实例详解
2018/05/28 Javascript
Python中几种操作字符串的方法的介绍
2015/04/09 Python
Python基于smtplib实现异步发送邮件服务
2015/05/28 Python
Python中super关键字用法实例分析
2015/05/28 Python
Python编程实战之Oracle数据库操作示例
2017/06/21 Python
Docker部署Python爬虫项目的方法步骤
2020/01/19 Python
如何将tensorflow训练好的模型移植到Android (MNIST手写数字识别)
2020/04/22 Python
美国大型的健身社区和补充商店:Bodybuilding.com
2016/09/06 全球购物
英国街头品牌:Bee Inspired Clothing
2018/02/12 全球购物
JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
2015/10/22 面试题
车间组长岗位职责
2013/12/20 职场文书
演讲稿怎么写才完美
2014/01/02 职场文书
行政经理岗位职责
2015/04/15 职场文书
观看建国大业观后感
2015/06/01 职场文书
2015年大学迎新工作总结
2015/07/16 职场文书
新闻发布会新闻稿
2015/07/17 职场文书
学校2016年圣诞节活动总结
2016/03/31 职场文书
win10安装配置nginx的过程
2021/03/31 Servers
CentOS7安装GlusterFS集群以及相关配置
2022/04/12 Servers