架构基本概述以及环境准备
架构基本概述以及环境准备
架构名词介绍
# 项目:
独立的一个网站或者独立的一个app应用
# 架构:
用来维护或者运行一个项目的一组服务器
# 集群:
为解决某个特定问题将多台计算机组合起来形成的单个系统(一台计算机故障导致服务运行不起来,被称为单点故障)
# 高可用:
当一台服务器不可用,另一台服务器自动接管,保证业务不down机
# 负载均衡:
将用户的请求,分摊到多个操作单元上执行,为了解决服务器压力不均衡的问题
架构如何演变
在浏览器中输入:域名 eg:www.baidu.com
-
DNS域名解析服务器将www.baidu.com解析成IP地址:202.108.22.5
-
浏览器和该IP地址(202.108.22.5)的服务器(https:// 443)(http:// 80)端口建立连接
-
请求要经过202.108.22.5服务器的防火墙,允许你的IP(101.229.206.48)访问服务器的443端口
- 防火墙:过滤用户请求,防止恶意请求,针对IP和端口进行限制
- CentOS6之前:iptables CentOS7开始:firewalld,也可以使用iptables
- 硬件防火墙
-
请求通过防火墙后,访问到负载均衡服务器
- Nginx
- HAproxy
- LVS
- F5(硬件)
-
请求通过负载均衡后会被下发到后面的web服务器
- Nginx
- Apache
- Tomcat(Java)
- PHP(PHP代码容器)
-
前端代码会请求后端的代码,后端代码请求数据库
- MySQL
- Oracle
- SQLServer
- MariaDB
- 数据库之前会有缓存服务器,如果缓存中有请求的数据,则直接通过缓存返回给用户
- Redis
- MangoDB
- Memcache
- 文件服务器(共享存储服务器)专门用来存储图片,视频,二进制类型的数据
- NFS
- GFS
- FastDFS
- ceph
运维自动化工具
#运维自动化工具
所有服务器,至少要有两块网卡(有两个IP地址)
- 外网IP地址,针对用户访问,给用户提供服务
- 内网IP地址,服务器之间互相可以访问
跳板机,VPN:访问内网服务器
- openvpn
- pptpvpn
- jumpserver
监控:检测到服务器上的应用、软件、网络、系统、业务状态
- zabbix
- nagios
- open-falcon
- promethues
- cacti
数据备份器:用来备份所有重要数据
- rsync
批量管理服务器
- ansible
- saltstack
日志服务器
- ELK
- flume
代码发布服务器
- Jenkins
代码存储服务器
- Gitlab
架构环境准备
1.新建一台虚拟机
2.添加第二个网卡
3.设置lan区段
4.将镜像放进光驱里
5.开机装系统、修改网卡名
按Tab健 空格输入:net.ifnames=0 biosdevname=0
5.配置网卡
## 编辑第一块网卡
vi /etc/sysconfig/network-scripts/ifcfg-eth0
删除UUID
BOOTPROTO=dhcp => BOOTPROTO=static 或者BOOTPROTO=noneONBOOT=no => ONBOOT=yes
IPADDR=10.0.0.100
NETMASK=255.255.255.0
GATEWAY=10.0.0.2
DNS1=223.5.5.5
## 编辑第二块网卡
vi /etc/sysconfig/network-scripts/ifcfg-eth1删除UUIDBOOTPROTO=dhcp => BOOTPROTO=static 或者BOOTPROTO=none
ONBOOT=no => ONBOOT=yes
IPADDR=172.16.1.100
NETMASK=255.255.255.0
## 重启网卡
systemctl restart network
系统基础优化
1.更改yum源
## 删除所有系统内置yum源
[root@localhost ~]# rm -fr /etc/yum.repos.d/*
## Base源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
## Epel源
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
## 查看源文件
[root@localhost ~]# ll /etc/yum.repos.d/
-rw-r--r--. 1 root root 2523 May 12 20:02 CentOS-Base.repo
-rw-r--r--. 1 root root 664 May 12 20:03 epel.repo
## 优化阿里云的源(删除多余的baseurl)
[root@localhost ~]# cat /etc/yum.repos.d/CentOS-Base.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.关闭防火墙
## 关闭防火墙服务
[root@localhost ~]# systemctl stop firewalld
## 取消防火墙开机自启
[root@localhost ~]# systemctl disable firewalld
# 4.关闭selinux
## 查看selinux
[root@localhost ~]# getenforce
Enforcing ## 开启状态
## 临时关闭
[root@localhost ~]# setenforce 0
## 永久关闭
[root@localhost ~]# vim /etc/sysconfig/selinux
SELINUX=enfocing => SELINUX=disabled
# 5.优化文件描述符
## 查看文件描述
[root@lb01 ~]# ulimit -n
65535
[root@lb01 ~]# ulimit -a
## 设置文件描述符为65535
echo '* - nofile 65535' >> /etc/security/limits.conf
# 6.修改主机名和IP的脚本
[root@localhost ~]# vim host_ip.sh
#!/bin/bash
read -p 'Please input HOSTNAME:' h
read -p 'Please input IP:' IP
hostnamectl set-hostname $h
sed -i "s#100#$IP#g" /etc/sysconfig/network-scripts/ifcfg-eth{0,1}
systemctl restart network
克隆优化好的模板机
1.关机拍快照
2.创建链接克隆