日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
基于CentOS的企業(yè)架構規(guī)劃及服務器優(yōu)化參數

閱讀目錄

  • 1.1 架構圖
  • 1.2 架構搭建順序
  • 1.3 架構環(huán)境
  • 1.4 虛擬主機配置
  • 2.1 架構優(yōu)化腳本內容
  • 2.2 模板機主機hosts文件配置
  • 3.1 克隆前準備
  • 3.2 進行克隆
  • 3.3 進行克隆
  • 3.4 克隆主機配置
  • 3.5 虛擬主機快照
  • 3.6 錯誤排查
  • 3.7 如何讓setup 命令中防火墻配置生效

第1章 企業(yè)架構規(guī)劃

1.1 架構圖

1.1.1 用戶訪問網站組成

類型

作用

實現方式

顧客-用戶

訪問網站的人員

@

保安-防火墻

安全策略控制;正確的流量通過,攻擊者的流量組織

硬件- 華為 思科 juniper廠商

軟件-iptables

迎賓-負載均衡服務器

提供訪問者請求調度作用

nginx反向代理負載均衡服務器

LVS haproxy

服務員-web服務器

根據http原理,回復給訪問者相應的頁面信息

nginx網站服務技術  apache

tomcat

廚師-數據庫服務器

返回給web服務器,相應用戶數據的信息(字符串信息)

mysql Oracle

廚師--存儲服務器

返回給web服務器,相應用戶的視頻、圖片、附件等數據信息

NFS存儲服務器  分布式儲存mfs

fastdfs

廚師-備份服務器

備份全網架構服務器的重要資料

定時備份rsync+定時任務 

實時備份 inotify/sersync+rsync

廚師-緩存服務器

將數據存儲到內存當中,提升讀取效率

memcache 

redis

 mongodb

心跳線

 keepalived 高可用

 

集群

多臺服務器做一件相同的事情

 

1.1.2 運維人員訪問網站組成

類型

作用

實現方式

秘密通道-vpn

實現加密傳輸數據,實現認證建立連接

 

監(jiān)管-跳板機

監(jiān)控運維人員操作信息

  1、實時監(jiān)控運維人員桌面信息

  2、命令記錄功能

  3、操作記錄回放

  4、用戶審計功能

jumpsever/gateone

批量管理服務器

批量自動化管理多臺主機

ssh+key

ansible (200-300臺)

saltstack

監(jiān)控服務器

監(jiān)控架構服務器運行情況

zabbix/nagios+cacti

批量安裝部署系統(tǒng)

(kicksrtart/cobbler)

 

1.2 架構搭建順序

順序

服務

軟件

1

備份存儲服務器

rsync軟件實現備份服務

2

存儲服務器

NFS軟件實現存儲服務

3

1 2 之間實時同步

inotify+rsync/sersync

4

批量管理服務器

ssh+key/ansible/saltstack

5

web服務

nginx

6

LNMP架構

linux+nginx+mysql+php

7

負載均衡

ngnix負載均衡

8

心跳線

keeplived 高可用

1.3 架構環(huán)境

1.3.1 主機環(huán)境

服務器規(guī)劃

數量

作用說明

負載均衡服務器

兩臺

對訪問網站的流量進行風流,減少流量對某臺服務器的壓力

web服務器

三臺

處理用戶的頁面訪問請求(Nginx)

NFS存儲(兼職批量管理)

一臺

儲存圖片、附件、頭像等靜態(tài)數據

備份服務器(rsync

一臺

對全網服務器數據進行實時與定時備份

數據庫服務器(mySQL

一臺

對動態(tài)變化數據進行存儲(文本內容)

管理服務器

一臺

1)    1.作為yum倉庫服務器,提供全網服務器的軟件下載

2)    2.跳板機、操作審計

3)    3.vpn(pptp)

4)    4.監(jiān)控(zabbix)

5)    5.兼職批量分發(fā)和管理(ssh+key/ansible/saltstack)

合計需要9臺虛擬機

1.3.2 各主機(IP/主機名)規(guī)劃

服務器說明

外網ip(nat

內網IP(LAN區(qū)段)

主機名稱規(guī)劃

A1-nginx負載均衡服務器01

10.0.0.5/24

172.16.1.5/24

lb01

A2-nginx負載均衡服務器02

10.0.0.6/24

172.16.1.6/24

lb02

B1-nginx web服務器

10.0.0.7/24

172.16.1.7/24

web02

B2-nginx web服務器

10.0.0.8/24

172.16.1.8/24

web01

B3-nginx web服務器

10.0.0.9/24

172.16.1.924

web03

C3-mysql數據庫服務器

10.0.0.51/24

(生產環(huán)境不設置)

172.16.1.51/24

db01

C1-NFS存儲服務器

10.0.0.31/24

(生產環(huán)境不設置)

172.16.1.31/24

nfs01

C2-rsync 存儲服務器

10.0.0.41/24

(生產環(huán)境不設置)

172.16.1.41/24

backup

X-管理服務器

10.0.0.61/24

(生產環(huán)境不設置)

172.16.1.61/24

m01

1.3.3 初始目錄規(guī)劃

說明

目錄結構

目錄結構說明

初始化目錄

/server/scripts

/server/tools

/application

存放腳本的目錄

存放編譯安裝軟件源代碼的目錄

軟件程序的安裝目錄

1.4 虛擬主機配置

1.4.1 虛擬主機網卡添加(vmware軟件)

選擇網絡適配器,添加一塊新對的網卡

圖1-1 添加網卡

選項默認即可,下一步直到網卡添加成功。

圖1-2 添加完成

1.4.2 編輯網絡

修改網絡選項,將NAT模式子網改為 10.0.0.0 /24

修改網關為10.0.0.254

圖1-3 修改NAT網絡的網段

圖1-4 修改NAT網絡的網關

設置網卡的格式

      第一塊網卡選擇nat模式

圖1-5 第一塊網卡設置

第二塊網卡選擇lan區(qū)段

圖1-6 第二塊網卡設置 LAN區(qū)段

配置好lan區(qū)段后選擇上lan區(qū)段即可

圖1-7 第二塊網卡選擇好LAN區(qū)段

1.4.3 虛擬主機網卡地址配置

圖1-8 第一塊網卡eth0配置

圖1-9 第二塊網卡eth1配置

1.4.4 網卡配置好后注意

配置完成需要重啟網絡服務

/etc/init.d/network restart

第2章 架構主機優(yōu)化腳本

注意:此腳本需要放在/tmp 目錄下

 

#!/bin/bash
#################################################
#    File Name: optimize-init_sys.sh
#       Author: Energy
#         Mail: admin@znix.top
#     Function: system optimize scripts
#################################################
#optimization linux system
. /etc/init.d/functions

#change system directory: create seripts/software directory
function change_dir(){
    ShellDir="/server/scripts"
    SoftwareDir="/server/tools"
    mkdir -p $ShellDir &&\
    mkdir -p $SoftwareDir
}

# input info verify
function info_verify(){
    read -p "Please make sure the information you entered (yes|no): " info
  case "$info" in
        y*|Y*)
            continue
            ;;
        n*|N*)
            exit 1
          ;;
  esac
}

#change system hostname
function change_hostname(){
    read -p "Please input hostname: " HostName
        info_verify
    hostname $HostName &&\
    sed -i "2s/=.*$/=$HostName/g" /etc/sysconfig/network &&\
    chk_hosts=$(grep -o "\b$HostName\b" /etc/hosts)
    get_ip=$(ifconfig eth0|awk -F "[ :]+" 'NR==2 {print $4}')
    if [ -z $chk_hosts ]
    then
        echo "$get_ip   $HostName" >>/etc/hosts
    else
        continue
    fi
}

#boot system optimize: setup chkconfig
function change_chkconfig(){
    Boot_options="$1"
    for boots in `chkconfig --list|grep "3:on"|awk '{print $1}'|grep -vE "$Boot_options"`
    do
        chkconfig $boots off
    done
}

#setup system optimize: setup ulimit
function change_ulimit(){
    grep "*       -       nofile       65535" /etc/security/limits.conf >/dev/null 2>&1
    if [ $? -ne 0 ]
    then
        echo '*       -       nofile       65535' >>/etc/security/limits.conf
    fi
}

#setup system optimize: setup sysctl
function change_sysctl(){
    cat /tmp/sysctl.conf >/etc/sysctl.conf &&\
    modprobe bridge &>/dev/null &&\
    sysctl -p &>/dev/null
}

#sshd software optimize: change sshd_conf
function change_sshdfile(){
    SSH_Port="port 22"
    SSH_ListenAddress=$(ifconfig eth0|awk -F "[ :]+" 'NR==2 {print $4}')
    SSH_PermitRootLogin="PermitRootLogin no"
    SSH_PermitEmptyPassword="PermitEmptyPasswords no"
    SSH_GSSAPI="GSSAPIAuthentication no"
    SSH_DNS="useDNS no"
      #sed -i -e "13s/.*/$SSH_Port/g" /etc/ssh/sshd_config
      #sed -i -e "15s/.*/ListenAddress $SSH_ListenAddress/g" /etc/ssh/sshd_config
      #sed -i -e "42s/.*/$SSH_PermitRootLogin/g" /etc/ssh/sshd_config
      #sed -i -e "65s/.*/$SSH_PermitEmptyPassword/g" /etc/ssh/sshd_config
      sed -i -e "81s/.*/$SSH_GSSAPI/g" /etc/ssh/sshd_config
      sed -i -e "122s/.*/$SSH_DNS/g" /etc/ssh/sshd_config
}

#selinux software optimize: change disable
function change_selinux(){
    sed -i 's#SELINUX=.*#SELINUX=disabled#g' /etc/selinux/config &&\
    setenforce 0
}

#firewall software optimize: change stop
function change_firewall(){
    /etc/init.d/iptables stop >/dev/null 2>&1
}

#crond software optimize: time synchronization
function change_update(){
    grep -i "#crond-id-001" /var/spool/cron/root >/dev/null 2>&1
    if [ $? -ne 0 ]
    then
        echo '#crond-id-001:time sync by hq' >>/var/spool/cron/root
        echo "*/5 * * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1">>/var/spool/cron/root
    fi
}

#update yum info
function update_yum(){
    wget -q -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
    wget -q -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
}

#change profile file info
function change_profile(){
    grep "PS1" /etc/profile >>/dev/null 2>&1
    if [ $? -ne 0 ]
    then
        echo  "PS1='\[\e[32;1m\][\u@\h \W]\\$ \[\e[0m\]'" >>/etc/profile
    fi
    grep "alias grep" /etc/profile >>/dev/null 2>&1
    if [ $? -ne 0 ]
    then
    echo "alias grep='grep --color=auto'" >>/etc/profile
    echo "alias ll='ls -l --color=auto --time-style=long-iso'" >>/etc/profile
    fi
    source /etc/profile
}

function main(){
    change_dir
    change_hostname
    change_chkconfig "crond|network|rsyslog|sshd|sysstat"
    change_ulimit
    change_sysctl
    change_sshdfile
    change_selinux
    change_firewall
    change_update
    update_yum
    change_profile
}
main
action "system optimize complete" /bin/true

 

2.1 架構優(yōu)化腳本內容

適用于 #centos6.x  系統(tǒng)

2.1.1 更改yum源

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
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

2.1.2 關閉selinux

sed -i 's#SELINUX=enforcing#SELINUX=disabled#g'  /etc/selinux/config
grep SELINUX=disabled /etc/selinux/config
setenforce 0
getenforce

2.1.3 關閉關防火墻

/etc/init.d/iptables stop
/etc/init.d/iptables stop
chkconfig iptables off

2.1.4 精簡開機自啟動服務

chkconfig |egrep -v "sshd|network|crond|rsyslog|sysstat"|awk '{print "chkconfig",$1,"off"}'|bash
export LANG=en
chkconfig --list|grep 3:on

2.1.5 提權oldboy可以sudo(可選)

useradd oldboy
\cp /etc/sudoers /etc/sudoers.ori
echo "oldboy ALL=(ALL)  NOPASSWD: ALL" >>/etc/sudoers
tail -1 /etc/sudoers
visudo -c

2.1.6 中文字符集(不用做)

cp /etc/sysconfig/i18n /etc/sysconfig/i18n.ori
echo 'LANG="zh_CN.UTF-8"' >/etc/sysconfig/i18n
source /etc/sysconfig/i18n
echo $LANG

2.1.7 時間同步

echo '#time sync by hzs at 2017-10-05' >>/var/spool/cron/root
echo '*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null  2>&1 '>>/var/spool/cron/root
crontab -l

2.1.8 命令行安全(千萬別做)

#echo 'export TMOUT=300' >>/etc/profile
#echo 'export HISTSIZE=5' >>/etc/profile
#echo 'export HISTFILESIZE=5' >>/etc/profile
#tail -3 /etc/profile
#./etc/profile

2.1.9 加大文件描述符

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

2.1.10 內核優(yōu)化

 

cat >>/etc/sysctl.conf<

 

#修改內核后讓內核配置文件中的參數生效

sysctl -p

2.1.11 安裝一些軟件

yum install lrzsz namp tree  dos2unix nc -y

2.1.12 系統(tǒng)升級操作(暫不使用)

#yum update 或  yum upgrade
#yum -y update   #升級所有包,改變軟件設置和系統(tǒng)設置,系統(tǒng)版本內核都升級
#yum -y ipgrade  #升級所有包,不改變系統(tǒng)設置和軟件設置,系統(tǒng)版本升級,內核不變

2.2 模板機主機hosts文件配置

 

cat >/etc/hosts<

 

第3章 虛擬機克隆

3.1 克隆前準備

一清空,兩刪除

  清空網絡配置文件

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

echo '>/etc/udev/rules.d/70-persistent-net.rules'  >>/etc/rc.local

  刪除網卡配置文件中的uuid和HWADDR

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

3.2 進行克隆

模板機關機

shutdown -h now

3.2.1 保留快照

3.3 進行克隆

3.3.1 進行克隆

3.3.2 創(chuàng)建連接克隆

3.4 克隆主機配置

01. 利用給的腳本進行修改

02. 手動進行修改

hostname backup
sed -i "s#oldboy40#backup#g" /etc/sysconfig/network
grep "backup" /etc/sysconfig/network
HOSTNAME=backup
grep "backup" /etc/hosts
172.16.1.41     backup

3.4.1 手動修改網卡地址

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

3.4.2 修改系統(tǒng)主機名稱

hostname backup
sed -i  's#znix#backup#g' /etc/sysconfig/network
修改hosts文件

3.4.3 重啟網卡生效

/etc/init.d/network restart

3.4.4 重新建立xsheel標簽進行連接

第一臺克隆主機完成

3.5 虛擬主機快照

模板機初始化完成進行拍照留念

存儲空間足夠,快照要多保存。,

3.6 錯誤排查

3.6.1 網卡配置問題

    a 兩刪除操作完成之后,不要再進行setup修改網卡操作,否則mac地址信息會再次出現

    b setup命令無法設置網卡信息,主要和字符集設置有關

3.7 如何讓setup 命令中防火墻配置生效

3.7.1 CentOS系統(tǒng)找不到setup命令工具的解決方法

 

yum -y install setuptool  
#安裝setup命令工具

yum -y install ntsysv  
#安裝setup工具配套的系統(tǒng)服務組件

yum -y install system-config-securitylevel-tui
#安裝setup工具配套的防火墻配置組件

yum -y install system-config-network-tui
#安裝setup工具配套的網絡配置組件

yum -y install authconfig-gtk
#安裝setup工具配套的驗證配置組件

yum -y install system-config-keyboard
#安裝setup工具配套的鍵盤配置組件

 

3.7.2 使用setup配置中的Firewall configuration出現的錯誤

 

Traceback (most recent call last):
  File "/usr/bin/system-config-firewall-tui", line 29, in 
    import fw_tui
  File "/usr/share/system-config-firewall/fw_tui.py", line 34, in 
    import fw_nm
  File "/usr/share/system-config-firewall/fw_nm.py", line 30, in 
    bus = dbus.SystemBus()
  File "/usr/lib/python2.6/site-packages/dbus/_dbus.py", line 202, in __new__    private=private)
  File "/usr/lib/python2.6/site-packages/dbus/_dbus.py", line 108, in __new__
    bus = BusConnection.__new__(subclass, bus_type, mainloop=mainloop)
  File "/usr/lib/python2.6/site-packages/dbus/bus.py", line 125, in __new__
    bus = cls._new_for_bus(address_or_type, mainloop=mainloop)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.FileNotFound: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory

 

3.7.3 解決辦法

yum install -y system-config-firewall system-config-firewall-tui dbus eggdbus && service messagebus start

本文文使用的系統(tǒng)版本為: CentOS Linux release 7.4.1708 (Core) 內核版本為: 3.10.0-693.el7.x86_64


文章標題:基于CentOS的企業(yè)架構規(guī)劃及服務器優(yōu)化參數
文章網址:http://www.5511xx.com/article/ccdpjjo.html