架构介绍
架构相关名词
项目:独立的一个网站,或者独立的一个app应用
架构:用来维护或者运行一个项目的一组服务器
集群:为解决某个特定问题将多台计算机组合起来形成的单个系统(单点故障)
高可用:当一台服务器不可用,另一台服务器自动接管,保证业务不down机
负载均衡:将用户的请求,分摊到多个操作单元上执行,为了解决服务器压力不均衡的问题
架构演变
架构流程图
# 用户请求,针对用户设计的架构
在浏览器输入域名
https://wodeyumengouwo.com
1.DNS域名解析服务器==> 将
wodeyumengouwo.com ==> 独立公网
IP(111.231.7.51)
2.浏览器会和IP(111.231.7.51)进行端口的联机
http(80) https(443)
3.请求会经过111.231.7.51的服务器防火墙
-防火墙:过滤用户的请求,放置恶意请求,针对
IP和端口进行一个限制
- 关闭防火墙 selinux
-centos6 iptable
-centos7 firewalld
-硬件防火墙
4.请求通过防火墙后,会访问到负载均衡
-nginx
13 -HAproxy
14 -LVS
15 -F5(硬件)
16 5.通过负载均衡之后,请求会到web服务器
17 -nignx
18 -apache
19 -tomcat(java)
20 -PHP(php的代码容器)
21 6.前段代码会请求后端的代码,后端代码请求数据库
22 -Mysql
23 -oracle
24 -SQLServer
25 -Mariadb
26 7.数据库之前会有缓存数据库,如果缓存数据库中有请
求的数据,则会直接返回给用户
27 -Redis
28 -mangoBD
29 -Memcache
30 8.文件服务器(共享存储服务器),专门存储图片,视
频,二进制文件
31 -NFS
32 -GFS
33 -FastDFS
34 -ceph
35 # 运维自动化工具
36 所有的服务器都有两块网卡
37 外网:针对用户访问,给用户数据的
38 内网:服务器之间可以互相访问
40 跳板机
41 -openvpn
42 -jumpserver
43 -pptpvpn
44
45 监控 检测服务器的应用状态,硬件状态,网络状态,系
统状态,服务状态
46 -zabbix
47 -nagios
48 -open-falcon
49 -cacti
50
51 数据备份,用来备份所有重要数据
52 rsync
53
54 批量管理服务器
55 -ansible
56 -salstack
57
58 日志服务器
59 -ELK
60 -flume
61 代码发布
62 -jenkins
63 -代码存储服务器
64 -Gitlab
外网IP | 内网IP | 主机名 |
---|---|---|
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.61 | 172.16.1.61 | m01 |
10.0.0.71 | 172.16.1.71 | zabbix |
优化最终版本虚拟机
- 典型(推荐使用)
- 自定义
-
安装程序光盘
-
安装程序光盘映像文件
-
稍后安装操作系统(推荐使用)
- Linux
- CentOS 7 64位(CentOS 64位)
-
命名虚拟机名称
-
保存虚拟机位置
-
一个虚拟机一个文件夹
-
一台虚拟机一个文件夹
- 20G
- 将虚拟磁盘拆分成多个文件
- 完成
添加网卡
开机
## 按tab末尾加入net.ifnames=0 biosdevname=0
.
配置网卡
## 编辑第一块网卡
vi /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
NAME="eth0"
UUID="752c888b-804f-46d1-9a1d-250c4a5d047c"
DEVICE="eth0"
ONBOOT="yes"
IPADDR="10.0.0.110"
PREFIX="24"
GATEWAY="10.0.0.2"
DNS1="223.5.5.5"
## 编辑第二块网卡
vi /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=eth1
DEVICE=eth1
ONBOOT=yes
IPADDR=172.16.1.110
PREEFIX=24
## 重启网卡
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
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
# 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
1024
## 设置文件描述符为65535
[root@lb01 ~]# echo '* - nofile 65535' >> /etc/security/limits.conf
[root@lb01 ~]# ulimit -n
65535
# 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
# 7.时间同步
## 下载时间同步命令 并执行
[root@localhost ~]# yum install -y ntpdate
[root@localhost ~]# ntpdate time1.aliyun.com
## 编辑定时任务 并查看日志是否成功
[root@localhost ~]# crontab -e
# Usage: Sync Date By:wyk Date:2022/05/10
*/5 * * * * /usr/sbin/ntpdate time1.aliyun.com &>/dev/null
[root@localhost ~]# tail -f /var/log/cron
# 上面的优化配置全完全以后 init 0 关闭模版机 先快照优化好的模版机
# 克隆时 选择按快照克隆 选择链接克隆
# 克隆完成以后 开启克隆好的虚拟机 输入账号 密码
# 执行脚本修改 主机名 和 IP
# 关机给克隆完成的虚拟机拍快照
Comments | NOTHING