架构开场介绍
01. 中小规模网站架构组成
1) 顾客--用户
访问网站的人员
2) 保安--防火墙 (firewalld)
进行访问策略控制
3) 迎宾--负载均衡服务器 (nginx)
对用户的访问请求进行调度处理
4) 服务员---web服务器 (nginx)
处理用户的请求
5) 厨师---数据库服务器 (mysql)
存储的字符数据 (耳机 500 索尼 黑色 北京地址 订单时间2019-05-05 13:00)
6) 厨师---存储服务器 (nfs)
存储图片 音频 视频 附件等数据信息
7) 厨师---备份服务器 (rsync+crond-定时备份 rsync+sersync--实时备份)
存储网站所有服务器的重要数据
8) 厨师---缓存服务器 (redis mongodb)
a 将数据信息存储到内存中
b 减缓服务器的压力
9) 经理---批量管理服务器 (ansible)
批量管理多台服务器主机
02 部署网站架构:
1) 需要解决网站架构单点问题
迎宾: 高可用服务---keepalived
数据库: 高可用服务---mha
存储服务: 高可用服务---keepalived实现
高可用服务---分布式存储
备份服务:
面试题: 公司的数据是如何备份
1) 利用开源软件实现数据备份 rsync(免费)
2) 利用企业网盘进行数据备份 七牛云存储
3) 利用自建备份存储架构 两地三中心
缓存服务: 高可用服务--- 缓存服务集群/哨兵模式
2) 内部员工如何远程访问架构
部署搭建VPN服务器 openvpn
https://blog.oldboyedu.com/pptp-l2tp/
3) 内部员工操作管理架构服务器要进行审计
跳板机服务器 jumpserver
https://jumpserver.readthedocs.io/zh/docs/setup_by_centos.html
4) 架构中服务器出现问题需要进行提前报警告知
部署监控服务器 zabbix
03. 综合架构规划
主机名称和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\. 缓存服务器 忽略
第2章 综合架构环境准备
2.1 创建一台全新虚拟机作为模版
系统 CentOS7
内存 建议2G
网卡 eth0: NAT模式 模拟外网 10.0.0.x
eth1: LAN区段 模拟内网 172.16.1.x
硬盘 不小于20G或40G
开启虚拟机后会出现以下界面
Install CentOS 7 安装CentOS 7
Test this media & install CentOS 7 测试安装文件并安装CentOS 7
Troubleshooting 修复故障
安装默认修改网卡名称
选择第一项,安装直接CentOS 7,按Tab键,
在quiet后面空格 写入:net.ifnames=0 biosdevname=0 在回车
2.2 Centos7安装步骤
修改网卡名称:
设置语言
选择时区 中国 上海
选择最小安装
选择自定义分区
我要配置分区
选择标准分区
/boot 放内核 200M
SWAP 交换分区 内存的1.5倍,如果内存大于8G,则swap给8G即可
/ 跟目录 全部空间
选择 接受更改
关闭KDUMP
配置网卡
勾选自动连接
选择IPV4
2.3 优化模版机内容
修改电脑名称命令
hostnamectl set-hostname yuj
ifconfig 命令不存在
因为centos7的mini版没有安装net-tools,直接安装就好了,在终端里面输入:
yum -y install net-tools
2.3.1 精简网卡信息
[root@oldboyedu ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=10.0.0.201
PREFIX=24
GATEWAY=10.0.0.254
DNS1=10.0.0.254
[root@oldboyedu ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
BOOTPROTO=static
IPADDR=172.16.1.201
PREFIX=24
NAME=eth1
DEVICE=eth1
ONBOOT=yes
[root@oldboyedu ~]# systemctl restart network
2.3.2 删除网络相关配置文件
如果不删除,重新克隆虚拟机会导致上不了网
删除网卡里面包含UUID 的行(centos7),删除UUID和HWADDR(CentOS5和6)
清空/etc/udev/rules.d/70-persistent-net.rules(centos 5 和6)
2.3.3 关闭防火墙和selinux
关闭firewalld 和NetworkManager
[root@oldboyedu ~]# systemctl stop firewalld NetworkManager
disabled
disabled
[root@oldboyedu ~]# systemctl disable firewalld NetworkManager
关闭selinux
[root@oldboyedu ~]#vim /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabied 修改永久关闭
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
让配置文件的修改生效,使用source命令
[root@oldboyedu ~]# source /etc/selinux/config
[root@oldboyedu ~]#setenforce 0
[root@oldboyedu ~]#getenforce 0
关闭防火墙
[root@oldboyedu ~]#iptables -nL
2.3.4 优化SSH连接速度慢
在centos 7 中,由于ssh认证的网络连通等问题,ssh客户端连接响应时间很长,需要10秒左右。
[root@oldboyedu ~]# vi /etc/ssh/sshd_config
79行:GSSAPIAuthentication no
115行:UseDNS no 去掉注释
先备份/etc/ssh/sshd_config先备份/etc/ssh/sshd_config
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
以root用户登录
su
编辑配置文件
vi /etc/ssh/sshd_config
GSSAPIAuthentication
输入 / ,查找GSSAPIAuthentication 赋值为no
UseDNS
输入 /,查找UseDNS,赋值为 no
(该项默认不启用的,但是也必须要修改,否则没有效果,要把前面的#删除掉)
保存配置文件
最后输入!wq保存文件并退出
重启SSH服务
systemctl restart sshd
[root@oldboyedu ~]# systemctl restart sshd.service
2.3.5 优化命令行显示
vi /etc/profile 最后一行添加
export PS1="[\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\] \[\e[31;1m\]\w\[\e[0m\]]\\$ "
source /etc/profile
2.3.6 配置yum源
查看yum源
yum repolist
CentOS 7系统默认的源更新
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
增加epel源
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
2.3.7 安装常用软件
yum install -y tree vim wget bash-completion bash-completion-extras lrzsz net-tools sysstat iotop iftop htop unzip telnet ntpdate
2.3.8 配置普通用户sudo权限
[root@oldboyedu ~]# grep oldboy /etc/sudoers
oldboy ALL=(ALL) NOPASSWD: ALL
2.3.9 配置hosts解析
10.0.1.5 172.16.1.5 lb01
10.0.1.6 172.16.1.6 lb02
10.0.1.7 172.16.1.7 web01
10.0.1.8 172.16.1.8 web02
10.0.1.9 172.16.1.9 web03
10.0.1.31 172.16.1.31 nfs
10.0.1.41 172.16.1.41 backup
10.0.1.51 172.16.1.51 db01
10.0.1.61 172.16.1.61 m01
10.0.1.71 172.16.1.71 zabbix
2.4.0 时间同步
ntpdate time1.aliyun.com
网卡图解