架构的基本概述
架构的基本概述
架构专业名词介绍
项目:每一个app,每一个网站都算一个项目
架构:用一组服务器搭建出一个项目,多个项目不可能共用一台服务器
集群:为解决某个特定问题将多台计算机组合起来形成的单个系统
高可用:当一台服务器不可用,另一台服务器(备机)自动接管,保证业务不down机
单点故障:服务器没有备用机,服务宕机后,网站就无法访问
负载均衡:将用户的请求,分摊到多个操作单元上(每一台服务器上)执行,保证服务器的稳定性
静态页面:纯前端写的页面,并且不调用数据库的页面
动态页面:用户的请求是否调用数据库
架构规划
需要准备的虚拟机
外网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 |
模板机的创建与优化
要求:
1.模板机外网ip为10.0.0.100
2.模板机内网ip为172.16.1.100
创建方式
1.在VMware中,右键点击新建虚拟机,选择典型并取名模板机10.0.0.100创建新的虚拟机
2.右键模板机10.0.0.100选择设置--->硬件--->添加--->网络适配器
3.编辑新添加的网络适配器,选择LAN区段,编辑区段信息,写入172.16.1.0/24区段信息并选择
4.放入光盘映像文件并点击启动时连接
5.启动系统,进入系统安装界面,在安装系统界面,选择安装sentos7,按tab键-->空格,输入"net.ifnames=0 biosdevname=0",回车
6.在系统安装配置界面选择最小化安装,选择minimal lnstall即可
7.磁盘分区中/boot分区500M,sawp分区1024M,剩余空间给根分区
8.设置好root用户密码再安装系统并重启
网卡配置
先编辑第一块网卡:vi /etc/sysconfig/network-scritps/ifcfg-eth0
删除所有IPv6的行和UUID的行
BOOTPROTO=dhcp 改为 static或者none
ONBOOT=no => yes
IPADDR=10.0.0.100
GATEWAY=10.0.0.2
NETMASK=255.255.255.0
DNS1=223.5.5.5
编辑第二块网卡:vi /etc/sysconfig/network-scritps/ifcfg-eth1
删除所有IPv6的行和UUID的行
BOOTPROTO=dhcp 改为 static或者none
ONBOOT=no => yes
IPADDR=172.16.1.100
NETMASK=255.255.255.0
systemctl restart network
[root@localhost ~]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:bd:b7:4b brd ff:ff:ff:ff:ff:ff
inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:febd:b74b/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:bd:b7:55 brd ff:ff:ff:ff:ff:ff
inet 172.16.1.100/24 brd 172.16.1.255 scope global noprefixroute eth1
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:febd:b755/64 scope link
valid_lft forever preferred_lft forever
优化系统
修改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
安装基础包
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 ntpdate -y
关闭防火墙并且关闭开机自启
systemctl stop firewalld
systemctl disable firewalld
关闭selinux
setenforce 0
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux
优化文件描述符
echo '* - nofile 65535' >> /etc/security/limits.conf
时间同步
crontab -e
#Create By:wj Time:2021-07-05 Nmae: 5 mins ntp time
*/5 * * * * /bin/ntpdate time1.aliyun.com &>/dev/null
优化后关机
init 0
创建快照
1.右键点击模板机10.0.0.10,选择快照--->拍摄快照,并命名
克隆新的虚拟机
1.右键点击模板机10.0.0.100,选择管理--->克隆--->从现有快照克隆并选择刚刚拍摄的快照
2.选择链接克隆
3.指定虚拟机名称:backup-10.0.0.41,指定虚拟机存放目录
4.启动虚拟机,修改网卡配置信息并更改主机名
- 修改网卡配置信息
vim /etc/sysconfig/network-scripts/ifcfg-eth0IPADDR=10.0.0.100 --> 10.0.0.41vim /etc/sysconfig/network-scripts/ifcfg-eth1IPADDR=172.16.1.100 => 172.16.1.41[root@backup ~]$ ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.0.0.41 netmask 255.255.255.0 broadcast 10.0.0.255 inet6 fe80::20c:29ff:fe6a:6bd7 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:6a:6b:d7 txqueuelen 1000 (Ethernet) RX packets 53 bytes 5968 (5.8 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 55 bytes 7010 (6.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.16.1.41 netmask 255.255.255.0 broadcast 172.16.1.255 inet6 fe80::20c:29ff:fe6a:6be1 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:6a:6b:e1 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 11 bytes 836 (836.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- 修改主机名
hostnamectl set-hostname backup
5.利用xshell远程连接虚拟机,这样一台虚拟机就已经准备好了,再按步骤将其他的虚拟机也克隆并配置好即可
原文地址:https://www.cnblogs.com/blogwjbb/p/15108183.html
- 微信技术团队的又一力作,WCDB 简单易用的数据库框架
- Redis特性和应用场景
- Spring Cloud(四)服务提供者 Eureka + 服务消费者 Feign
- 智能下拉刷新框架-SmartRefreshLayout
- Spring Cloud(三)服务提供者 Eureka + 服务消费者(rest + Ribbon)
- Spring Cloud(二)Consul 服务治理实现
- Spring Cloud(一)服务的注册与发现(Eureka)
- Shard 分片集群
- 面试官最爱的volatile关键字
- 玩转 WebView ,突破系统限制,让缓存更简单,更灵活
- Mycat 读写分离 数据库分库分表 中间件 安装部署,及简单使用
- 50道Java线程题
- Jrebel6.3.3破解,配置图文教程
- Spring Cloud(十一)高可用的分布式配置中心 Spring Cloud Bus 消息总线集成(RabbitMQ)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- OpenShift应用发布和运维设计
- Android:依赖Module的问题汇总
- Android:加载网图时精确获取图片格式
- Android:8.0中未知来源安装权限变更
- Android:RippleDrawable 水波纹/涟漪效果
- Android:Chip、ChipGroups、ChipDrawable
- Android9.0 使用 AndroidVideoCache 时不能缓存/播放视频的解决
- Android:流式布局实现总结
- 跨域问题汇总
- 优化 Docker 镜像大小常见方法
- 第10期:选择合适的表空间
- 在 Kubernetes 上编排 MongoDB 集群
- k8s技术圈一周精选[第7期]
- TypeScript namespace 命名空间
- 从Pytorch 的ONNX到OpenVINO中IR中间层