linux 综合架构篇介绍
中小规模网站架构组成
1 顾客--用户
- 访问网站的人员
2 保安--防火墙 (firewalld)
- 进行访问策略控制
3 迎宾--负载均衡服务器 (nginx)
- 对用户的访问请求进行调度处理
4 服务员---web服务器 (nginx)
- 处理用户的请求
5 厨师---数据库服务器 (mysql)
- 存储的字符数据 (耳机 500 索尼 黑色 北京地址 订单时间2019-05-05 13:00)
6 厨师---存储服务器 (nfs)
- 存储图片 音频 视频 附件等数据信息
7 厨师---备份服务器 (rsync+crond-定时备份 rsync+sersync--实时备份)
- 存储网站所有服务器的重要数据
8 厨师---缓存服务器 (memcache redis mongodb)
-
a 将数据信息存储到内存中
-
b 减缓服务器的压力
9 经理---批量管理服务器 (ansible)
- 批量管理多台服务器主机
部署网站架构
1 需要解决网站架构单点问题
-
迎宾: 高可用服务---keepalived
-
数据库: 高可用服务---mha
-
存储服务: 高可用服务---keepalived实现
-
高可用服务---分布式存储
备份服务:
面试题: 公司的数据是如何备份
-
1) 利用开源软件实现数据备份 rsync(免费)
-
2) 利用企业网盘进行数据备份 七牛云存储
-
3) 利用自建备份存储架构 两地三中心
缓存服务: 高可用服务--- 缓存服务集群/哨兵模式
2) 内部员工如何远程访问架构
-
部署搭建VPN服务器 PPTP vpn
-
https://blog.oldboyedu.com/pptp-l2tp/
3) 内部员工操作管理架构服务器要进行审计
-
跳板机服务器 jumpserver
-
https://jumpserver.readthedocs.io/zh/docs/setup_by_centos.html
4) 架构中服务器出现问题需要进行提前报警告知
- 部署监控服务器 zabbix
综合架构规划
主机名称和IP地址规划
01. 防火墙服务器 firewalld 10.0.0.81(外网地址) 172.16.1.81(内外地址) 软件: firewalld 02. 负载均衡服务器 lb01 10.0.0.5 172.16.1.5 软件: nginx keepalived 03. 负载均衡服务器 lb02 10.0.0.6 172.16.1.6 软件: nginx keepalived 04. web服务器 web01 10.0.0.7 172.16.1.7 软件: nginx 05. web服务器 web02 10.0.0.8 172.16.1.8 软件: nginx 06. web服务器 web03 10.0.0.9(存储) 172.16.1.9 软件: nginx 07. 数据库服务器 db01 10.0.0.51 172.16.1.51 软件: mysql(慢) mariaDB 08. 存储服务器 nfs01 10.0.0.31 172.16.1.31 软件: nfs 09. 备份服务器 backup 10.0.0.41 172.16.1.41 软件: rsync 10. 批量管理服务器 m01 10.0.0.61 172.16.1.61 软件: ansible 11. 跳板机服务器 jumpserver 10.0.0.71(61) 172.16.1.71 软件: jumpserver 12. 监控服务器 zabbix 10.0.0.72(61) 172.16.1.72 软件: zabbix 先把路走通,再进行变通 *10. 缓存服务器 忽略
优化模板机配置
进行网络配置
(1)添加网卡
(2) 配置网卡
vim /etc/sysconfig/network-scripts/ifcfg-eth1 # 或者 nmtui
重启网络服务
systemctl restart network
(3)检查网络配置
ping 外网检测联通性
系统优化过程
(1)模板机优化配置---hosts文件配置
备份主机配置文件
cp /etc/hosts{,.bak}
配置主机名称
cat >/etc/hosts<<EOF 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 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 db01.etiantian.org 172.16.1.31 nfs01 172.16.1.41 backup 172.16.1.61 m01 EOF
模板机优化配置---更改yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup &&\ curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum install -y wget wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
模板机优化配置---关闭selinux
sed -i.bak 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config grep SELINUX=disabled /etc/selinux/config setenforce 0 getenforce
模板机优化配置---关闭iptables
systemctl stop firewalld systemctl disable firewalld systemctl status firewalld
模板机优化配置---提权oldboy可以sudo (可选配置)
useradd oldboy echo 123456|passwd --stdin oldboy \cp /etc/sudoers /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 '#time sync by lidao at 2017-03-08' >>/var/spool/cron/root echo '*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1' >>/var/spool/cron/root crontab -l
模板机优化配置---加大文件描述(默认是 1024)
说明:
-
一个服务程序运行起来,会打开相应的文件
-
crond定时任务服务---systemctl start crond --- 打开相应文件
-
/var/spool/cron/root --- 加载打开配置文件
-
/var/log/cron --- 加载打开日志文件
ulimit -a
yum install -y lsof lsof -i:22
加大文件描述
echo '* - nofile 65536' >>/etc/security/limits.conf tail -1 /etc/security/limits.conf
模板机优化配置---安装其他小软件
yum install lrzsz nmap tree dos2unix nc telnet wget lsof ntpdate bash-completion bash-completion-extras -y
模板机优化配置---ssh连接速度慢优化
#ssh连接速度慢优化 sed -i.bak 's@#UseDNS yes@UseDNS no@g;s@^GSSAPIAuthentication yes@GSSAPIAuthentication no@g' /etc/ssh/sshd_config systemctl restart sshd
进行模板主机克隆操作
1. 进行模板机快照拍摄
2. 进行虚拟主机克隆
创建链接克隆分为:创建链接克隆和创建完整克隆
创建链接克隆 (学习环境)
优势:
-
a 节省物理主机资源
-
b 克隆主机效率快
劣势:
- a 模板主机删除,链接主机也会失效
创建完整克隆 (企业应用)
优势:
- a 模板主机删除,克隆主机依然可以使用
劣势:
- a 比较消耗物理主机资源
- b 克隆主机效率低
备份服务器配置
hostnamectl set-hostname backup 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] systemctl restart network
存储服务器配置
hostnamectl set-hostname nfs01 sed -i 's#200#31#g' /etc/sysconfig/network-scripts/ifcfg-eth[01] grep 31 /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] systemctl restart network