原前端
前言導讀mysql
目前民工哥的公衆號也運營一年多的時間,從剛開始的網絡方面的基礎知識轉到Linux系統方面,先後文章也寫了許多,前段時間順便回看了下前面的文章,中小企業架構是徹底能夠完成的,包括整個的架構設計與規劃、配置及後續維等。linux
所以,民工哥纔有此想法,將目前的線上環境從當時項目開始到最終結束的整個過程詳細記錄下來,寫成文章發佈出來,算是共享給各位持續關注公衆號的小夥伴,能夠作個平時的參考文檔,同時也但願各位小夥伴多提意見與建議,一塊兒共同提升、共同成長!!!!nginx
整個項目包括如下幾個應用工程web
一、用戶APPredis
二、商家APPsql
三、業務平臺管理後臺數據庫
四、商家業務管理後臺vim
五、官網windows
總體項目規劃設計以下
一、用戶APP採用JAVA環境佈署,初始環境兩臺服務器,實現負載均衡與高可用,前端負載使用nginx 作負載
二、商家APP採用JAVA環境佈署,初始環境兩臺服務器,實現負載均衡與高可用,前端負載使用nginx 作負載
三、業務平臺管理後臺採用JAVA環境佈署,初始環境一臺服務器,前端使用nginx 反向代理,後續業務流量擴大,架構從新擴展
四、商家平臺管理後臺採用JAVA環境佈署,初始環境一臺服務器,前端使用nginx 反向代理,後續業務流量擴大,架構從新擴展
五、官方網站都是一些靜態頁面,採用nginx佈署,WEB服務另安裝FTP服務器,作爲業務管理後臺一些靜態資源的上傳
六、數據庫使用Mysql主從複製架構,程序上實現讀寫分享,從庫開啓binlog作備份使用
七、全網全部備份數據所有同步到專業內網備份服務器,全部業務備份數據保留30天
八、全網全部服務器監控(基本監控與服務監控)都採用zabbix監控
備註:因爲線上使用阿里雲主機,負載均衡的高可用使用阿里自帶的SLB便可,線下若是測試環境能夠使用keepalived+nginx,若有須要可參考前面的文章,文章連接以下
服務器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
#腳本與數據備份目錄
至此基本的服務器優化配置也就結束了,接下來就是安裝各種服務