Linux系統集羣架構線上項目配置實戰(一)

先後文章也寫了許多,前段時間順便回看了下前面的文章,中小企業架構是徹底能夠完成的,包括整個的架構設計與規劃、配置及後續維等。前端

  所以,民工哥纔有此想法,將目前的線上環境從當時項目開始到最終結束的整個過程詳細記錄下來,寫成文章發佈出來,算是共享給各位持續關注公衆號的小夥伴,能夠作個平時的參考文檔,同時也但願各位小夥伴多提意見與建議,一塊兒共同提升、共同成長!!!!mysql

一、項目總體介紹

整個項目包括如下幾個應用工程linux

  • 一、用戶APP
  • 二、商家APP
  • 三、業務平臺管理後臺
  • 四、商家業務管理後臺
  • 五、官網

總體項目規劃設計以下nginx

一、用戶APP採用JAVA環境佈署,初始環境兩臺服務器,實現負載均衡與高可用,前端負載使用nginx 作負載web

二、商家APP採用JAVA環境佈署,初始環境兩臺服務器,實現負載均衡與高可用,前端負載使用nginx 作負載redis

三、業務平臺管理後臺採用JAVA環境佈署,初始環境一臺服務器,前端使用nginx 反向代理,後續業務流量擴大,架構從新擴展sql

四、商家平臺管理後臺採用JAVA環境佈署,初始環境一臺服務器,前端使用nginx 反向代理,後續業務流量擴大,架構從新擴展數據庫

五、官方網站都是一些靜態頁面,採用nginx佈署,WEB服務另安裝FTP服務器,作爲業務管理後臺一些靜態資源的上傳vim

六、數據庫使用Mysql主從複製架構,程序上實現讀寫分享,從庫開啓binlog作備份使用windows

七、全網全部備份數據所有同步到專業內網備份服務器,全部業務備份數據保留30天

八、全網全部服務器監控(基本監控與服務監控)都採用zabbix監控

備註:因爲線上使用阿里雲主機,負載均衡的高可用使用阿里自帶的SLB便可,線下若是測試環境可使用keepalived+nginx,若有須要可參考前面的文章,文章連接以下 keepalived高可用集羣服務安裝與配置實戰

服務器IP地址規劃以下

服務器環境與應用軟件版本介紹

服務器環境

[root@centos ~]# cat /etc/redhat-release
CentOS release 6.8 (Final)
[root@centos ~]# uname -r
2.6.32-642.el6.x86_64

應用軟件版本

Nginx 1.12.1
Mysql 5.7.17
Jdk 1.8
Tomcat 8.5.9
Zabbix 3.0
Yum 源使用16三、阿里去、sohu國內的源均可以,自行選擇
Redis 4.0.1

二、服務器邏輯架構圖

三、服務器基礎環境優化配置

因使用雲主機服務器,初始系統安裝就略過了,若是須要批量安裝的請參考前面的文章

文章連接以下

    批量無人值守安裝操做系統

配置國內YUM源,以163爲例

[root@centos ~]# cd /etc/yum.repos.d/
[root@centos yum.repos.d]# wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
[root@centos yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak
[root@centos yum.repos.d]# mv CentOS6-Base-163.repo CentOS-Base.repo

安裝須要的軟件包

[root@centos ~]# yum install lsof vim telnet dos2unix lrzsz tree -y

關閉不須要啓動的服務

for service in `chkconfig --list|grep 3:on|awk '{print $1}'`
do chkconfig --level 3 $service off
done
for service in crond network sshd rsyslog
do chkconfig --level 3 $service on
done
[root@centos ~]# chkconfig --list|grep 3:on

修改SSH服務的默認配置

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

sed -i 's%#Port 22%Port 2233%g'  /etc/ssh/sshd_config

sed -i 's%#PermitRootLogin yes%PermitRootLogin no%g'  /etc/ssh/sshd_config

sed -i 's%#PermitEmptyPasswors no%PermitEmptyPasswors no%g'  /etc/ssh/sshd_config

sed -i 's%#UseDNS yes%UseDNS no%g'  /etc/ssh/sshd_config

egrep "UseDNS|2233|RootLogin|EmptyPass"  /etc/ssh/sshd_config

/etc/invited/sshd reload

關閉selinux

配置文件/etc/selinux/config

sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
egrep "SELINUX=" /etc/selinux/config

關閉防火牆

若是不是對外網的服務器,直接關閉防火牆,有外網地址的可建議開啓,並容許相關的服務端口,併發高的服務器也不須要開啓防火牆,可能會影響性能

/etc/invited/pintables stop
/etc/invited/pintables status
pintables: Firewall is not running.

鎖定系統關鍵文件

for file in /etc/passed /etc/shadow /etc/services /etc/initial /etc/rc.local
do
   chattr +i $file
done

配置普通操做用戶及sudo權限

具體操做請參考前面的文章,文章連接以下

 企業實戰項目之服務器用戶權限集中管理

配置全網服務器時間同步

/usr/sbin/ntpdate time.windows.com

cat>>/var/spool/cron/root<<EOF

#this cron is for ntpdate

*/5 * * * * /usr/sbin/ntpdate time.windows.com >/dev/null 2>&1

#cron config end

EOF

配置全網服務器hosts文件

Cat>>/etc/hosts<<EOF

10.0.0.1      nginx-lb     

10.0.0.2      nginx-proxy      

10.0.0.3      nginx     

10.0.0.4      userapp      

10.0.0.5      sjapp     

10.0.0.6      admin     

10.0.0.7      shangjia     

10.0.0.8      web   

10.0.0.9      mysql-m      

10.0.0.10     mysql-s      

10.0.0.11     ftp-backup   

10.0.0.12     redis     

10.0.0.13     backup-server    

10.0.0.14     zabbix    

EOF

規範全部服務器的目錄結構

[root@centos ~]# mkdir/download/tools/ -p

全部軟件下載目錄

[root@centos ~]# mkdir/app/logs -p

全部安裝的應用日誌目錄

[root@centos ~]# mkdir /app-p

應用服務軟件安裝目錄

[root@centos ~]# mkdir/server/{scripts,backup} -p

腳本與數據備份目錄

至此基本的服務器優化配置也就結束了,接下來就是安裝各種服務

相關文章
相關標籤/搜索