第1章 小型网站架构描述

image.png

1.1 前端部分

1.1.1 访问者

访问网站架构的人员

1.1.2 防火墙(iptables)

主要提供系统架构的网络安全性

1.1.3 负载均衡服务器(nginx反向代理/LVS)

主要对访问请求进行调度处理

1.1.4 网站web服务器(Nginx网站服务/Tomcat)

为访问者提供访问,做出响应处理

1.2 后端部分

1.2.1 数据库服务器(mysql)

主要是用于存储字符串信息

1.2.2 存储服务器(NFS存储服务)

用于存储用户上传的图片、视频、音频、附件等数据资源

1.2.3 备份服务器(rsync备份服务)

对系统架构中重要数据信息进行备份存储

1.2.4 缓存服务器(memcache/redis/mogodb)

提供用户访问存储和读取快速响应(采用内存存储数据,一般存放热点数据)

1.3 运维人员进入架构路径

1.3.1 ×××通道

提供运维人员进入前的身份验证

1.3.2 审计监控-跳板机

监管运维人员日常的操作过程,一旦出现问题,可以准确定位责任问题

1.3.3 监控-监控服务器

监控发现架构中所有服务器运行中出现的问题,然后产生警告信息告知运维人员,及时进行架构问题修复

1.3.4 批量管理服务器

用于对架构中所有服务器进行批量管理操作

1.4 发现架构不足(完善架构)

1. 架构中防火墙服务器可以部署多台,避免单点故障

2. 架构中负载均衡服务器可以部署多台,避免单点故障

3. 架构中数据库服务器可以部署多台,实现主从架构,多个主多个从,避免单点故障

4. 架构中存储服务器可以部署多台

5. 架构中备份服务器可以部署多台

6. 架构中缓存服务器可以部署多台

image.png

第2章 配置模板主机

2.1 .配置网络环境

网卡的网段信息、网关信息、其他相关虚拟网络功能设置

image.png

2.2 添加虚拟网卡

设置LAN区段,作为内网

image.pngimage.png

image.png

2.3 开启模板主机

进行网卡地址信息配置

image.png image.png

image.png image.png

image.png image.png

image.pngspacer.gifspacer.gif

image.png

2.4 为克隆做准备

2.4.1 一清空

/etc/udev/rules.d/70-persistent-net.rules 网络规则配置文件

>/etc/udev/rules.d/70-persistent-net.rules

永久清空:写入到/etc/rc.local

[root@wuhuang wuhuang]# >/etc/udev/rules.d/70-persistent-net.rules

[root@wuhuang wuhuang]# echo '>/etc/udev/rules.d/70-persistent-net.rules' >>/etc/rc.local

[root@wuhuang wuhuang]# cat /etc/rc.local

#!/bin/sh

#

# This script will be executed *after* all the other init scripts.

# You can put your own initialization stuff in here if you don't

# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

>/etc/udev/rules.d/70-persistent-net.rules


2.4.2 两删除

删除网卡里面UUID信息

删除网卡里面mac地址信息

查询:grep -E "UUID|HWADDR" /etc/sysconfig/network-scripts/ifcfg-eth[01]

[root@wuhuang ~]# grep -E "UUID|HWADDR" /etc/sysconfig/network-scripts/ifcfg-eth[01]

/etc/sysconfig/network-scripts/ifcfg-eth0:HWADDR=00:0c:29:84:7f:04

/etc/sysconfig/network-scripts/ifcfg-eth0:UUID=c958e711-cff6-464b-b9f4-cec0a6cb625b

/etc/sysconfig/network-scripts/ifcfg-eth1:HWADDR=00:0c:29:84:7f:0e

[root@wuhuang ~]# sed -ri '/UUID|HWADDR/d' /etc/sysconfig/network-scripts/ifcfg-eth[01]

[root@wuhuang ~]# grep -E "UUID|HWADDR" /etc/sysconfig/network-scripts/ifcfg-eth[01]

[root@wuhuang ~]#


删除:sed -ri '/UUID|HWADDR/d' /etc/sysconfig/network-scripts/ifcfg-eth[01]

第3章 对模板机进行基本系统优化

3.1 模板机优化配置---hosts文件配置

[root@wuhuang ~]# cp /etc/hosts{,.bak}

[root@wuhuang ~]# cat >/etc/hosts<<EOF

> 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

> ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

> 172.16.1.5 lb01

> 172.16.1.6 lb02

> 172.16.1.7 web01

> 172.16.1.8 web02

> 172.16.1.9 web03

> 172.16.1.51 db01 db01.etiantian.org

> 172.16.1.31 nfs01

> 172.16.1.41 backup

> 172.16.1.61 m01

> EOF

[root@wuhuang ~]# cat /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

172.16.1.5 lb01

172.16.1.6 lb02

172.16.1.7 web01

172.16.1.8 web02

172.16.1.9 web03

172.16.1.51 db01 db01.etiantian.org

172.16.1.31 nfs01

172.16.1.41 backup

172.16.1.61 m01


3.2 模板机优化配置---更改yum源

3.2.1 更改yum源

http://mirrors.aliyun.com/help/epel

centOS 6

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo


3.2.2 列出yum源信息

yum repolist

3.3 模板机优化配置---关闭selinux

3.3.1 永久

修改配置文件:sed -i.bak 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

检查:grep SELINUX=disabled /etc/selinux/config

3.3.2 临时

关闭:setenforce 0

查看:getenforce

3.4 模板机优化配置---关闭iptables

3.4.1 开机不启动

chkconfig iptables off

3.4.2 临时关闭

/etc/init.d/iptables stop

3.5 模板机优化配置---精简开机自启动服务

export

chkconfig|egrep -v "crond|sshd|network|rsyslog|sysstat"|awk '{print "chkconfig",$1,"off"}'|bash

chkconfig --list|grep 3:on

[root@wuhuang ~]# export

[root@wuhuang ~]# chkconfig|egrep -v "crond|sshd|network|rsyslog|sysstat"|awk '{print "chkconfig",$1,"off"}'|bash

[root@wuhuang ~]# chkconfig --list|grep 3:on

crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off

network 0:off 1:off 2:on 3:on 4:on 5:on 6:off

rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off

sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

sysstat 0:off 1:on 2:on 3:on 4:on 5:on 6:off

3.6 模板机优化配置---提权oldboy可以sudo(可选设置)

useradd wuhuang

echo 123456|passwd --stdin wuhuang

cp /etc/sudoers /etc/sudoers.ori

echo "wuhuang ALL=(ALL) NOPASSWD: ALL " >>/etc/sudoers

tail -1 /etc/sudoers

visudo -c


[root@wuhuang ~]# useradd wuhuang

[root@wuhuang ~]# echo 123456|passwd --stdin wuhuang

Changing password for user wuhuang.

passwd: all authentication tokens updated successfully.

[root@wuhuang ~]# cp /etc/sudoers /etc/sudoers.ori

[root@wuhuang ~]# echo "oldboy ALL=(ALL) NOPASSWD: ALL " >>/etc/sudoers

[root@wuhuang ~]# tail -1 /etc/sudoers

wuhuang ALL=(ALL) NOPASSWD: ALL

[root@wuhuang ~]# visudo -c

/etc/sudoers: parsed OK

3.7 模板机优化配置---英文字符集

cp /etc/sysconfig/i18n /etc/sysconfig/i18n.ori

echo 'LANG="en_US.UTF-8"' >/etc/sysconfig/i18n

source /etc/sysconfig/i18n

echo $LANG

[root@wuhuang ~]# cp /etc/sysconfig/i18n /etc/sysconfig/i18n.ori

[root@wuhuang ~]# echo 'LANG="en_US.UTF-8"' >/etc/sysconfig/i18n

[root@wuhuang ~]# source /etc/sysconfig/i18n

[root@wuhuang ~]# echo $LANG

en_US.UTF-8


3.8 模板机优化配置---时间同步

echo '#time sync by lidao at 2017-03-08' >>/var/spool/cron/root

echo '*/5 * * * * /usr/sbin/ntpdate pool.ntp.org >/dev/null 2>&1'

crontab -l

[root@wuhuang ~]# crontab -l

#tongbu date

*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1


3.9
模板机优化配置---加大文件描述

echo '* - nofile 65535 ' >>/etc/security/limits.conf

tail -1 /etc/security/limits.conf

[root@wuhuang ~]# echo '* - nofile 65535 ' >>/etc/security/limits.conf

[root@wuhuang ~]# tail -1 /etc/security/limits.conf

* - nofile 65535


ulimit -a ---检查默认打开文件数

[root@wuhuang ~]# ulimit -a

core file size (blocks, -c) 0

data seg size (kbytes, -d) unlimited

scheduling priority (-e) 0

file size (blocks, -f) unlimited

pending signals (-i) 1784

max locked memory (kbytes, -l) 64

max memory size (kbytes, -m) unlimited

open files (-n) 1024

pipe size (512 bytes, -p) 8

POSIX message queues (bytes, -q) 819200

real-time priority (-r) 0

stack size (kbytes, -s) 10240

cpu time (seconds, -t) unlimited

max user processes (-u) 1784

virtual memory (kbytes, -v) unlimited

file locks (-x) unlimited



ulimit -n 65535 ---临时加载修改打开文件数量

[root@wuhuang ~]# ulimit -n 65535

[root@wuhuang ~]# ulimit -a

core file size (blocks, -c) 0

data seg size (kbytes, -d) unlimited

scheduling priority (-e) 0

file size (blocks, -f) unlimited

pending signals (-i) 1784

max locked memory (kbytes, -l) 64

max memory size (kbytes, -m) unlimited

open files (-n) 65535

pipe size (512 bytes, -p) 8

POSIX message queues (bytes, -q) 819200

real-time priority (-r) 0

stack size (kbytes, -s) 10240

cpu time (seconds, -t) unlimited

max user processes (-u) 1784

virtual memory (kbytes, -v) unlimited

file locks (-x) unlimited


3.10 模板机优化配置---内核优化

cat >>/etc/sysctl.conf<<EOF

net.ipv4.tcp_fin_timeout = 2

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_keepalive_time = 600

net.ipv4.ip_local_port_range = 4000 65000

net.ipv4.tcp_max_syn_backlog = 16384

net.ipv4.tcp_max_tw_buckets = 36000

net.ipv4.route.gc_timeout = 100

net.ipv4.tcp_syn_retries = 1

net.ipv4.tcp_synack_retries = 1

net.core.somaxconn = 16384

net.core.netdev_max_backlog = 16384

net.ipv4.tcp_max_orphans = 16384

#以下参数是对iptables防火墙的优化,防火墙不开会提示,可以忽略不理。

net.nf_conntrack_max = 25000000

net.netfilter.nf_conntrack_max = 25000000

net.netfilter.nf_conntrack_tcp_timeout_established = 180

net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120

net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60

net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120

EOF

sysctl -p

[root@wuhuang ~]# cat >>/etc/sysctl.conf<<EOF

> net.ipv4.tcp_fin_timeout = 2

> net.ipv4.tcp_tw_reuse = 1

> net.ipv4.tcp_tw_recycle = 1

> net.ipv4.tcp_syncookies = 1

> net.ipv4.tcp_keepalive_time = 600

> net.ipv4.ip_local_port_range = 4000 65000

> net.ipv4.tcp_max_syn_backlog = 16384

> net.ipv4.tcp_max_tw_buckets = 36000

> net.ipv4.route.gc_timeout = 100

> net.ipv4.tcp_syn_retries = 1

> net.ipv4.tcp_synack_retries = 1

> net.core.somaxconn = 16384

> net.core.netdev_max_backlog = 16384

> net.ipv4.tcp_max_orphans = 16384

> #以下参数是对iptables防火墙的优化,防火墙不开会提示,可以忽略不理。

> net.nf_conntrack_max = 25000000

> net.netfilter.nf_conntrack_max = 25000000

> net.netfilter.nf_conntrack_tcp_timeout_established = 180

> net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120

> net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60

> net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120

> EOF

[root@wuhuang ~]# sysctl -p



3.11 模板机优化配置---安装其他小软件

yum install lrzsz nmap tree dos2unix nc telnet sl -y

3.12 模板机优化配置---ssh连接速度慢优化

sed -i.bak 's@#UseDNS yes@UseDNS no@g;s@^GSSAPIAuthentication yes@GSSAPIAuthentication no@g' /etc/ssh/sshd_config

/etc/init.d/sshd reload

[root@wuhuang ~]# sed -i.bak 's@#UseDNS yes@UseDNS no@g;s@^GSSAPIAuthentication yes@GSSAPIAuthentication no@g' /etc/ssh/sshd_config

[root@wuhuang ~]# /etc/init.d/sshd reload

Reloading sshd: [ OK ]



3.13 创建目录环境

mkdir /server/{scripts,tools} /application -p

image.png

第4章 进行虚拟主机克隆

4.1 关闭虚拟模板机,做一个模板机快照

4.2 进行虚拟主机克隆

4.2.1 链接克隆

缺点:模板机(根)如果没有了,所有链接克隆主机也会消失

优点:克隆效率高,占用系统资源少

4.2.2 完整克隆

缺点:克隆效率低,占用系统资源多

优点:克隆主机更加安全,互相独立

第5章 对克隆后的虚拟主机进行网络配置

image.png

当多个虚拟主机克隆完毕后,要一台一台开启,进行网络配置,否则会造成网络地址冲突

5.1 开启一台克隆主机backup

5.1.1 修改IP地址

sed -i 's#200#41#g' /etc/sysconfig/network-scripts/ifcfg-eth[01]

grep "41" /etc/sysconfig/network-scripts/ifcfg-eth[01]

5.1.2 修改主机名称

临时:hostname backup

永久:sed -i 's#oldboyedu43#backup#g' /etc/sysconfig/network

5.1.3 重启网络服务

/etc/init.d/network restart