中小规模网站架构组成

  1. 用户 访问网站的人员
  2. 防火墙 (firewalld) 进行访问策略控制
  3. 负载均衡服务器 (nginx) 对用户的访问请求进行调度处理
  4. web服务器 (nginx) 处理用户的请求
  5. 数据库服务器 (mysql) 存储的字符数据
  6. 存储服务器 (nfs) 存储图片 音频 视频 附件等数据信息
  7. 备份服务器 (rsync+crond-定时备份 rsync+sersync--实时备份) 存储网站所有服务器的重要数据
  8. 缓存服务器 (memcache redis mongodb) 将数据信息存储到内存中 减缓服务器的压力
  9. 批量管理服务器 (ansible) 批量管理多台服务器主机

部署网站架构

  1. 需要解决网站架构单点问题
  • 负载均衡: 高可用服务---keepalived
  • 数据库: 高可用服务---mha
  • 存储服务: 高可用服务---keepalived,分布式存储
  • 缓存服务: 高可用服务--- 缓存服务集群/哨兵模式
  1. 内部员工如何远程访问架构
  1. 内部员工操作管理架构服务器要进行审计
  1. 架构中服务器出现问题需要进行提前报警告知
  • 部署监控服务器 zabbix

公司的数据是如何备份(面试题)

  1. 利用开源软件实现数据备份 rsync(免费)
  2. 利用企业网盘进行数据备份 对象存储 腾讯云cos 阿里云oss
  3. 利用自建备份存储架构 两地三中心

综合架构规划

主机名称和IP地址规划

服务 主机名 eth0网卡IP eth1网卡IP 软件
防火墙服务器 firewalld 10.0.0.81 172.16.1.81 firewalld
负载均衡服务器 lb01 10.0.0.5 172.16.1.5 nginx,keepalived
负载均衡服务器 lb02 10.0.0.6 172.16.1.6 nginx,keepalived
web服务器 web01 10.0.0.7 172.16.1.7 nginx
web服务器 web02 10.0.0.8 172.16.1.8 nginx
web服务器 web03 10.0.0.9 172.16.1.9 nginx
存储服务器 nfs01 10.0.0.31 172.16.1.31 nfs
备份服务器 backup 10.0.0.41 172.16.1.41 rsync
数据库服务器 db01 10.0.0.51 172.16.1.51 mysql,mariaDB
批量管理服务器 m01 10.0.0.61 172.16.1.61 ansible
跳板机服务器 jumpserver 10.0.0.71 172.16.1.71 jumpserver
监控服务器 zabbix 10.0.0.72 172.16.1.72 zabbix
缓存服务器 暂无 暂无 暂无 暂无

模板机优化配置

进行网络配置

添加网卡

第二张网卡设置.png

nmtui配置网卡并查看

nmtui设置.png

查看网卡信息.png

配置hosts文件

#cat /etc/hosts

172.16.1.81 firewalld
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.31 nfs01
172.16.1.41 backup
172.16.1.51 db01
172.16.1.61 m01
172.16.1.71 jumpserver
172.16.1.72 zabbix

配置hosts文件.png

更改yum源

#备份原来的yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
#使用阿里的yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#安装wget后再使用下一条命令
yum install -y wget
#使用阿里的epel源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

关闭selinux

#使用sed命令查看替换后结果
sed 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
#查看后再修改配置文件信息
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
#使用grep确认
grep SELINUX=disabled /etc/selinux/config
#关闭当前的selinux服务
setenforce 0
#确认selinux服务是否关闭
getenforce

关闭firewalld

#关闭防火墙
systemctl stop firewalld
#开机不启动防火墙
systemctl disable firewalld
#确认防火墙是否关闭
systemctl status  firewalld

设置英文字符集

#英文字符集
localectl set-locale LANG="en_US.UTF-8"

时间同步

#安装ntpdate服务
yum install -y ntpdate
#添加定时任务
echo '#time sync by 1997sty at 2019-12-05' >>/var/spool/cron/root
echo '*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1' >>/var/spool/cron/root
#查看定时任务
crontab -l

加大文件描述

程序运行时,需要打开相应的文件,如果同时打开文件数超过该值,就会造成程序运行错误

#添加该配置
echo '*               -       nofile          65536' >>/etc/security/limits.conf
#查看配置是否成功
tail -1 /etc/security/limits.conf
#重新登录后可以使用改命令查看open files的数量
ulimit -a
使用该命令查看22端口使用文件情况
lsof -i:22

其他软件安装

yum install lrzsz nmap tree dos2unix nc telnet wget lsof ntpdate bash-completion bash-completion-extras -y

ssh连接速度慢优化

#查看修改情况
sed 's@#UseDNS yes@UseDNS no@g;s@^GSSAPIAuthentication yes@GSSAPIAuthentication no@g' /etc/ssh/sshd_config
#执行修改
sed -i 's@#UseDNS yes@UseDNS no@g;s@^GSSAPIAuthentication yes@GSSAPIAuthentication no@g' /etc/ssh/sshd_config
#重启sshd服务
systemctl restart sshd

模板主机克隆

  1. 进行模板机快照拍摄
  2. 进行虚拟主机克隆

创建链接克隆

  • 优势: 节省物理主机资源 克隆主机效率快
  • 劣势: 模板主机删除,链接主机也会失效

创建完整克隆

  • 优势: 模板主机删除,克隆主机依然可以使用
  • 劣势: 比较消耗物理主机资源 克隆主机效率低
  1. 克隆后虚拟主机配置
  • 修改主机名称
#备份服务器修改主机名backup
hostnamectl set-hostname backup
  • 修改主机地址
#备份服务器修改地址为41
sed -i 's#200#41#g' /etc/sysconfig/network-scripts/ifcfg-eth[01]
#修改后查看确认
grep 41 /etc/sysconfig/network-scripts/ifcfg-eth[01]
#删除UUID
sed -i '/UUID/d' /etc/sysconfig/network-scripts/ifcfg-eth[01]
#修改后查看确认
grep UUID /etc/sysconfig/network-scripts/ifcfg-eth[01]
#重启网卡
systemctl restart network
  • 克隆的主机网卡地址相同,所以不能同时启动
  • 克隆主机无法远程连接解决方法一:利用ping方式测试
  • 克隆主机无法远程连接解决方法一:关闭xshell软件重新打开

备份服务器说明

作用

  • 数据备份的服务器
  • 进行日志统一保存

什么是rsync服务

Rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具

  1. 下载安装软件(yum)
  2. 编写配置文件
  3. 搭建服务环境(备份的目录/目录权限)
  4. 启动服务程序(开机自动启动)
  5. 测试服务功能

rsync命令

本地备份数据

  • 语法格式 : rsync [OPTION...] SRC... [DEST]
  • SRC : 要备份的数据信息
  • DEST : 备份到什么路径中
#cp命令
cp /root/1997sty /root/1997sty.bak
#rsync命令 效果和cp命令一样
cp /root/1997sty /root/1997sty.bak

远程备份数据


拉取数据备份语法格式 : rsync [OPTION...] [USER@]HOST:SRC... [DEST]

  • OPTION : 设置参数
  • USER : 登录的用户
  • HOST : 指定远程主机IP地址或者主机名称
  • SRC : 要拉取的数据信息
  • DEST : 保存到本地的路径信息

推送数据备份语法格式 : rsync [OPTION...] SRC... [USER@]HOST:DEST

  • OPTION : 设置参数
  • SRC : 要推送的数据信息
  • USER : 登录的用户
  • HOST : 指定远程主机IP地址或者主机名称
  • DEST : 保存到远程的路径信息

设置参数

  • -r : 递归复制传输数据
  • -p : 保持文件属性信息不变

  1. 备份文件
#scp命令
scp -rp /root/1997sty root@172.16.1.41:/root/1997sty
#rsync命令 效果和scp命令一样
rsync -rp /root/1997sty root@172.16.1.41:/root/1997sty
  1. 备份目录及文件
#scp命令
scp -rp /1997stydir root@172.16.1.41:/backup
#rsync命令 效果和scp命令一样
rsync -rp /1997stydir root@172.16.1.41:/backup
  1. 备份目录中的文件(区别在于路径后面的/)
#scp命令
scp -rp /1997stydir/ root@172.16.1.41:/backup
#rsync命令 效果和scp命令一样
rsync -rp /1997stydir/ root@172.16.1.41:/backup

无差异同步

  • --delete : 实现无差异同步数据
#删除目录下所有文件
rm -rf /backup/*
#dir为空目录,同步目录到/backup目录,相当于删除
rsync -rp --delete /dir/ root@172.16.1.41:/backup

查看文件

#ls命令
ls /root/1997sty
#rsync命令
rsync /root/1997sty