整体知识介绍
- 备份服务
- 存储服务
- 实时同步服务
- 批量管理服务
- 网站服务(web服务)
- LNMP网站架构
- 负载均衡反向代理服务
- 高可用服务
- 监控服务
- 跳板机服务
- 防火墙服务
架构介绍
中小规模网站架构组成
-
用户——>顾客
- 访问网站的用户
-
防火墙——>保安—firewalld
- 进行访问策略控制
- 通过外网交换机发送给负载均衡服务器
-
负载均衡服务器——>迎宾—nginx
- 调度用户的访问请求,分配给不同的服务器
- 使用高可用服务解决单点问题(主从两台服务器)—keepalived
-
web服务器——>服务员— nginx
- 处理用户的请求
- 通过内网交换机发送给后端(存储服务器)
-
数据服务器(数据库)——>厨师—mysql
- 存储的字符数据
-
存储服务器——>厨师—nfs
- 存储图片、音频、视频等等
-
备份服务器——>厨师—rsync+cron-定时备份、rsync+sersync-实时备份
- 存储网站所有服务器的重要数据
-
缓存服务器——>厨师—memcache、redis、mongodb
- 将数据信息存储到内存中
- 减缓服务器的压力
-
批量管理服务器——>经理—ansible
- 批量管理多台服务器主机
-
员工——>走员工通道
- 通过VPN(虚拟网络)服务器用来验证是否是内部员工
- 审计服务器(跳板机):记录内部员工的操作
-
监控服务器:报警
部署网站架构需要解决的问题
-
需要解决网站架构单点问题
- 迎宾:高可用服务—keepalived
- 数据库:高可用服务—mha
- 存储服务:高可用服务—keepalived实现
- 分布式存储
- 备份服务:
- 利用开源软件实现数据备份 rsync(免费)
- 利用企业网盘进行备份 七牛云
- 利用自建备份存储架构 两地三中心
- 缓存服务:高可用服务—缓存服务集群/哨兵模式
-
内部员工如何远程访问架构
- 部署搭建VPN服务器 PPTP vpn
-
内部员工操作管理架构服务器需要进行审计
- 跳板机服务器 jumpserver
-
架构中服务器出现问题需要进行提前报警告知
- 部署监控服务器 zabbix
架构规划
主机名称规划和ip地址规划
-
防火墙服务器 firewalld
- (外网地址和内网地址),网络位不一样,主机位一样
- 外网地址:10.0.0.81
- 内网地址:172.16.1.81
- 软件:firewalld
-
负载均衡服务器 lb01 lb02
- 外网地址:10.0.0.5、10.0.0.6
- 内网地址:172.16.1.5、172.16.1.6
- 软件:nginx、keepalived
-
web服务器 web01 web02 web03
- 外网地址:10.0.0.7、10.0.0.8、10.0.0.9
- 内网地址:172.16.1.7、172.16.1.8、172.16.1.9
- 软件:nginx
-
数据库服务器 db01
- 外网地址:10.0.0.51
- 内网地址:172.16.1.51
- 软件:mysql(慢),mariaDB
-
存储服务器 nfs01
- 外网地址:10.0.0.31
- 内网地址:172.16.1.31
- 软件:nfs
-
备份服务器 backup
- 外网地址:10.0.0.41
- 内网地址:172.16.1.41
- 软件:rsync
-
批量管理服务器 m01
- 外网地址:10.0.0.61
- 内网地址:172.16.1.61
- 软件:ansible
-
跳板机服务器 jumpserver
- 外网地址:10.0.0.61
- 内网地址:172.16.1.61
- 软件:jumpserver
-
监控服务器 zabbix
- 外网地址:10.0.0.61
- 内网地址:172.16.1.61
- 软件:zabbix
-
缓存服务器(忽略)
系统优化,进行虚拟主机克隆操作
-
基础优化: 系统基础优化.md
-
更改yum源
-
关闭selinux
-
关闭防火墙
-
-
进行网络配置
-
添加网卡
-
配置网卡
nmtui eth1 eth1 Manual Show 172.16.1.200/24 内网地址不需要DNS和网关
-
重启网络
systemctl restart network
-
检查
ping www.baidu.com
-
-
hosts文件配置
-
备份hosts文件
\cp /etc/hosts{,.bak} \:不使用alias里配置的cp
-
添加解析记录
cat >> /etc/hosts <<EOF 172.16.1.5 lb01 172.16.1.6 lb02 172.16.1.7 web01 172.16.1.8 web02 172.16.1.9 web03 172.16.1.51 db01.etiontion.org 172.16.1.31 nfs01 172.16.1.41 backup 172.16.1.61 m01 EOF
-
-
授权oldboy可以sudo
useradd oldboy echo 123456 | passwd --stdin oldboy cp /etc/sudoers{,ori} echo "oldboy ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers tail -1 /etc/sudoers visudo -c
-
英文字符集
localectl set-locale LANG="en_US.UTF-8"
-
时间同步
yum install -y ntpdate echo '*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null' >> /var/spool/cron/root crontab -l
-
加大文件描述 :避免服务开启过多在用lsof查看的时候看不了(超过了默认的1024)
yum install -y lsof lsof:list system open file:列出系统打开的文件 echo '* - nofile 65536' >>/etc/security/limits.conf source /etc/security/limits.conf #进行查看检查 ulimit -a
-
安装其他小软件
yum install lrzsz nmap tree dos2unix nc telnet wegt bash-completion bash-completion-extra -y
进行模版主机克隆操作
-
进行模版机快照拍照
-
进行虚拟主机克隆
- 链接克隆
- 节省物理主机资源
- 克隆主机效率快
- 模版主机删除,链接主机也会失效
- 完整克隆
- 模版主机删除,克隆主机依然可以使用
- 比较消耗物理主机资源
- 克隆主机效率低
- 链接克隆
-
克隆后虚拟主机配置
-
修改主机名称
hostnamectl set-hostname 修改后的主机名
-
修改主机地址
sed -i 's#200#41#g' /etc/sysconfig/network-scripts/ifcfg-eth[01] grep 41 /etc/sysconfig/network-scripts/ifcfg-eth[01] sed -i '/UUID/d' /etc/sysconfig/network-scripts/ifcfg-eth[01] grep UUID /etc/sysconfig/network-scripts/ifcfg-eth[01]
PS:一台一台顺序启动进行修改,不要同时启动
-