Linux-高性能Web集群实践
Day02.中小规模Web集群规划与环境准备
1.集群概念
-
集群:是指一组(若干个)互相独立的计算机,利用高速通讯网络组成的一个较大的计算机服务系统,每个集群节点(集群中的每台计算机)都是运行各自服务的独立服务器;这些服务器之间可以彼此通信,协同向用户提供应用程序、系统资源和数据,并以单一系统的模式加以管理;当用户客户机请求集群系统时,集群给用户的感觉就是一个单一独立的服务器,而实际上用户请求的是一组集群服务器。
-
集群的特点
- (1)高并发,大流量
- (2)持续服务,高可用
- (3)海量数据
- (4)用户分布广泛,网络情况复杂
2.企业网站集群架
- 网站用户环节
- 网站安全环节
- 网站通信环节
- 网站反向代理负载均衡环节
- 网站Web服务环节
- 网站数据库存储环节
- 网站缓存环节
- 网站数据备份环节
- 网站批量管理环节
- 网站监控管理环节
架构组成 | 作用说明 |
网站访问用户 | 请求访问网站信息资源的人员,如果一个网站集群没有用户进行访问,那搭建网站集群也是没有意义的 |
防火墙设备 | 阻挡非正常访问请求,保障网站集群架构安全性,防止恶意攻击者影响网络稳定运行,开源工具有Iptables |
|
|
负载均衡服务器 | 负责将访问请求调度到不同表的Web服务器上,主要起调度作用,常见的有Nginx、Lvs、Haproxy |
Web服务器 | 接收用户访问请求,并对请求进行处理,将请求信息抛送给后端服务器,最终将处理结果进行回复响应 |
|
|
数据库服务器 | 用于存储与用户访问相关的数据信息,即存放数据的仓库,一般存储的主要是文本内容等。主要的应用软件有MySQL、SOL Server、Oracle |
存储服务器 | 用于储存于用户访问相关的数据信息,一般储存一些音频、视频、图片、附件等信息。主要的应用软件有NFS、MooseFS(MFS)\GlusterFS\FastDFS等 |
内存数据库服务器 | 利用硬件内存存储用户数据信息,提高数据存储与读取效率,作为数据库的补充,主要应用的软件有Memcached、Redis |
备份服务器 | 主要作为全网服务器的数据备份服务器,主要储存备份配置文件、脚本文件、代码文件、日志文件、数据库备份文件等。同时也作为存储服务器的热备服务器,当存储服务器出现异常时,可以实现快速切换存储服务,避免访问获取数据异常的情况 |
|
|
批量管理服务器 | 负责全网架构服务器的管理工作,涉及批量修改服务器配置文件、批量查看服务器信息、批量部署服务,以及批量分发文件等。主要应用的软件有SSH(分发密码钥)、Ansible |
监控服务器 | 负责监控全网服务器的系统性能情况、业务处理情况、服务运行情况等,一旦架构服务器出现异常会发送告警信息给运维人员。主要应用的软件有Zabbix、Nagios、Cacti等 |
审计服务器 | 负责登录架构前的用户身份验证,只有符合要求的管理人员才能通过此服务器管理其他服务器设备,也称为跳板及服务器。由于服务器权限职能过高,因此绝对不能提供外网直连访问权限,既不能配置外网地址 |
VPN服务器 | 用于外网用户进行远程VPN连接,实现远程安全登录网络架构远程管理架构服务器 |
3.网站集群架构搭建规划
3.1 中小规模基础网站集群架构规划
服务器规划 | 数量 | 名称规划 |
---|---|---|
Nginx负载均衡服务器 | 两台 | 对访问网站的流量进行分流,减少流量对某台服务器造成的压力 |
动态Web服务器 | 两台 | 处理用户动态页面访问请求(Nignx) |
静态Web服务器 | 两台 | 为用户提供上传的图片、附件、视频(放于存储通中)等浏览服务 |
NFS存储服务器 | 一台 | 存储图片、附件、头像、等静态数据 |
Rsync备份服务器 | 一台 | 对全网服务器数据进行定时备份、NFS存储实时备份 |
MySQL数据库服务器 | 一台 | 对用户发布的文字文本数据进行存储 |
管理服务器 | 一台 | 主要是集群内部的管理相关功能业务 1.作为yum仓库服务器,提供全网服务器的软件下载 2.跳板机、操作审计、VPN(OpenVPN)、监控(Zabbix) 3.批量分发和管理(SSH key+Ansible) 4.无人值守系统安装服务kickstart(cobbler) 如果机器够用,可以将应用分拆为不同的服务器独立实现服务 |
3.2网站集群搭建顺序规划
部署里程 | 部署服务 | 部署说明 |
---|---|---|
第一里程 | 网站备份服务-Rsync | 完成数据存储备份服务部署,网站永远数据最重要 |
第二里程 | 网站存储服务-NFS | 实现网站数据的统一存储,节省服务器磁盘硬件成本 |
第三里程 | 实时复制服务(部署在NFS上) | (1)利用Inotify+Rsync实现新增数据实时同步备份 (2)利用Sersync+Rsync实现新增数据实时同步备份 |
第四里程 | 批量管理服务-SSH、Ansible | (1)熟悉掌握远程管理服务是部署批量管理服务的前提 (2)部署批量管理服务,并掌握批量管理方法 |
第五里程 | 网络架构部署-LNMP | (1)掌握网站HTTP协议原理概念知识 (2)部署网站静态资源处理服务-Nginx (3)部署网站动态资源处理服务-PHP (4)部署网站数据库服务器-MySQL |
第六里程 | 网站架构部署-Nignx静态 | (1)部署网站静态资源处理服务-Nginx(选做) |
第七里程 | 负载均衡服务-Nignx | (1)完成网站负载压力平均分配,提升网站高并发处理能力 |
第八里程 | 网站冗余服务-Keepalived | (1)处理网站可能出现的单点故障问题 |
3.3主机IP及主机名规划表
服务器说明 | eth0外网IP(NAT) | eth1内网IP(NAT) | 主机名称规划 |
---|---|---|---|
A1-负载服务器01 | 10.0.0.5/24 | 172.16.1.5/16 | lb01 |
A2-负载服务器02 | 10.0.0.6/24 | 172.16.1.6/16 | lb02 |
B1-Web服务器01 | 10.0.0.7/24 | 172.16.1.7/16 | web01 |
B2-Web服务器02 | 10.0.0.8/24 | 172.16.1.8/16 | web02 |
SB1-Web服务器01 | 10.0.0.9/24 | 172.16.1.9/16 | sweb01 |
SB2-Web服务器02 | 10.0.0.10/24 | 172.16.1.10/16 | sweb02 |
C1-NFS存储服务器 | 10.0.0.31/24 | 172.16.1.31/16 | nfs01 |
C2-Rsync备份服务器 | 10.0.0.41/24 | 172.16.1.41/16 | backup |
C3-MySQL数据库服务器 | 10.0.0.51/24 | 172.16.1.51/16 | db01 |
X-管理服务器 | 10.0.0.61/24 | 172.16.1.61/16 | m01 |
3.4安装及配置路径等规划
目录说明 | 目录结构说明 |
---|---|
/server/scripts |
服务器本地存放脚本程序的目录 |
/ |