架构笔记--前言 --01
架构第一天`
期中架构篇
一、名词介绍
1.项目:针对游戏公司,每一个游戏就是一个项目;针对互联网行业,一个公司就是一个项目;
2.架构:维护一个项目的所有组件组成的一个整体
lnmp:linux、nginx、mysql(mariadb)、php(python)
lnmt:linux、nginx、mysql(mariadb)、tomcat(java)
lamt:linux、apache、mysql(mariadb)、tomcat(java)
lamp:linux、apache、mysql(mariadb)、php(python)
redis、elasticsearch、kafka、hadoop、hbase、zabbix、nfs、git、jenkins
3.集群:多台服务器组成一个集合,实现同样的工作,当一台服务器出现问题,其他的服务器可以正常提供服务
4.负载均衡:将前端的用户请求,平均的分配到后端服务器
5.高可用:当一台服务器不可用时,另一台服务器自动接管工作,保证业务的可用性
二、架构流程图
三、架构访问流程
1.用户访问流程
1.用户在浏览器输入域名
2.浏览器拿着域名取DNS服务器解析
3.DNS服务器将解析后的IP返回给浏览器
4.浏览器根据IP去访问真实服务器
5.访问真实服务器的防火墙
6.防火墙将请求通过内网交换机传给负载均衡
7.负载均衡将请求平均的分配给后端的web服务器
8.web服务器去判断是静态请求还是动态请求
9.如果是静态请求,web服务器会去文件服务器获取数据
10.如果是动态请求,web服务器会通过程序取数据库或者缓存获取数据
11.数据从数据库或者NFS服务器返回给web服务器,web服务器将数据返回给负载均衡,负载均衡通过防火墙将数据传回给浏览器
2.运维访问流程
1.管理人员连接跳板机或者VPN
2.通过跳板机或者VPN连接内网服务器
3.通过zabbix监控查看服务器状态
4.如果有问题则连接相应机器解决问题
5.日常巡检,查看服务器配置
6.管理备份和备份数据
7.日志收集和整理展示
四、架构阶段服务器准备
外网IP 内网IP 主机名
10.0.0.3 VIP
10.0.0.4 172.16.1.4 lb4
10.0.0.5 172.16.1.5 lb01
10.0.0.6 172.16.1.6 lb02
10.0.0.7 172.16.1.7 web01
10.0.0.8 172.16.1.8 web02
10.0.0.9 172.16.1.9 web03
10.0.0.31 172.16.1.31 nfs
10.0.0.41 172.16.1.41 backup
10.0.0.51 172.16.1.51 db01
10.0.0.52 172.16.1.52 db02
10.0.0.53 172.16.1.53 db03
10.0.0.61 172.16.1.61 m01
10.0.0.71 172.16.1.71 zabbix
1.准备工作:
1>安装全新Centos7系统,配置网卡为eth0及eth1命名模式 200
1>第一块网卡为NAT模式[公网环境],配置的网段为10.0.0.0网段
2>第二块网卡为LAN模式[私网环境],配置的网段为172.16.1.0网段
3>优化安装好的Centos7虚拟机,安装常用软件、关闭防火墙等等
2.优化步骤
#1.配置yum仓库
rm -f /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
#2.安装基础软件包
yum install net-tools vim tree htop iftop gcc gcc-c++ glibc\
iotop lrzsz sl wget unzip telnet nmap nc psmisc \
dos2unix bash-completion bash-completion-extra sysstat \
rsync nfs-utils httpd-tools -y
#3.关闭防火墙firewalld
systemctl disable firewalld
systemctl stop firewalld
#4.关闭selinux
sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config
#5.调整单个进程最大能打开文件的数量
echo '* - nofile 65535' >> /etc/security/limits.conf