第1章 中小規(guī)模網(wǎng)站架構(gòu)組成
架構(gòu)名詞介紹
1.什么是項(xiàng)目, 類似于手機(jī)的App,每一個(gè)app都可以算做一個(gè)項(xiàng)目。
2.什么是架構(gòu), 維護(hù)一個(gè)項(xiàng)目使用的一組服務(wù)器。
3.什么是集群, 為解決某個(gè)特定問題將多臺(tái)計(jì)算機(jī)組合起來(lái)形成的單個(gè)系統(tǒng)。
4.什么是高可用, 當(dāng)一臺(tái)服務(wù)器不可用,另一臺(tái)服務(wù)器自動(dòng)接管,保證業(yè)務(wù)不down機(jī)。
5.什么是負(fù)載均衡,將用戶的請(qǐng)求,分?jǐn)偟蕉鄠€(gè)操作單元上執(zhí)行,保證服務(wù)器的穩(wěn)定性。
架構(gòu)訪問流程-用戶視角
1.用戶通過瀏覽器輸入oldboyedu.com->回車
2.瀏覽器會(huì)發(fā)生一次跳轉(zhuǎn),分析URL->然后進(jìn)行DNS解析->獲取真實(shí)的公網(wǎng)IP地址
3.用戶通過tcp的三次握手發(fā)起連接->真實(shí)的公網(wǎng)IP
4.連接會(huì)通過公網(wǎng)->路由器->交換機(jī)->抵達(dá)前端的硬件防火墻
5.防火墻根據(jù)自身訪問規(guī)則,進(jìn)行匹配->如果惡意的連接則拒絕->如果是正常的連接則放行
6.防火墻會(huì)將連接轉(zhuǎn)發(fā)給負(fù)載均衡器->查看用戶請(qǐng)求的內(nèi)容->根據(jù)內(nèi)容進(jìn)行任務(wù)下發(fā)->下發(fā)給web服務(wù)器
7.web服務(wù)接收請(qǐng)求后會(huì)根據(jù)請(qǐng)求進(jìn)行判斷 如果是請(qǐng)求圖片或者附件->查找存儲(chǔ)服務(wù)器存儲(chǔ)的靜態(tài)資源 如果請(qǐng)求的網(wǎng)站上的內(nèi)容->緩存服務(wù)器->如果緩存服務(wù)器沒有->數(shù)據(jù)庫(kù) 數(shù)據(jù)庫(kù)查詢完數(shù)據(jù)之后會(huì)返回?cái)?shù)據(jù)給web服務(wù)器->同時(shí)也會(huì)返回一份給緩存服務(wù)器
8.數(shù)據(jù)庫(kù)返回內(nèi)容->web服務(wù)器->負(fù)載均衡->用戶
架構(gòu)訪問流程-運(yùn)維視角
1.用戶通過公網(wǎng)連接(隧道)VPN服務(wù)器,這樣方便管理內(nèi)部主機(jī),
2.自動(dòng)化配置管理,節(jié)省人力成本,便于后期維護(hù)。統(tǒng)一環(huán)境,標(biāo)準(zhǔn)化
3.自動(dòng)化監(jiān)控服務(wù),監(jiān)控系統(tǒng)的運(yùn)行狀態(tài),事前預(yù)警,事后追溯。
總結(jié): 一個(gè)項(xiàng)目涵蓋了一套架構(gòu),一套架構(gòu)又涵蓋了不同的角色(高可用、負(fù)載均衡、web集群) 五層架構(gòu)模型--> 負(fù)載均衡 web服務(wù) 存儲(chǔ)服務(wù) 緩存服務(wù) 數(shù)據(jù)庫(kù)服務(wù)(通過tcp連接)
1) 顧客--用戶
訪問網(wǎng)站的人員
2) 保安--防火墻 (firewalld)
進(jìn)行訪問策略控制
3) 迎賓--負(fù)載均衡服務(wù)器 (Nginx)
對(duì)用戶的訪問請(qǐng)求進(jìn)行調(diào)度處理
4) 服務(wù)員---web服務(wù)器 (nginx)
處理用戶的請(qǐng)求
5) 廚師---數(shù)據(jù)庫(kù)服務(wù)器 (MySQL)
存儲(chǔ)的字符數(shù)據(jù) (耳機(jī) 500 索尼 黑色 北京地址 訂單時(shí)間2019-05-05 13:00)
6) 廚師---存儲(chǔ)服務(wù)器 (nfs)
存儲(chǔ)圖片 音頻 視頻 附件等數(shù)據(jù)信息
7) 廚師---備份服務(wù)器 (rsync+crond-定時(shí)備份 rsync+sersync--實(shí)時(shí)備份)
存儲(chǔ)網(wǎng)站所有服務(wù)器的重要數(shù)據(jù)
8) 廚師---緩存服務(wù)器 (memcache redis mongodb)
a 將數(shù)據(jù)信息存儲(chǔ)到內(nèi)存中
b 減緩服務(wù)器的壓力
9) 經(jīng)理---批量管理服務(wù)器 (ansible)
批量管理多臺(tái)服務(wù)器主機(jī)
部署網(wǎng)站架構(gòu):
1) 需要解決網(wǎng)站架構(gòu)單點(diǎn)問題
迎賓: 高可用服務(wù)---keepalived
數(shù)據(jù)庫(kù): 高可用服務(wù)---mha
存儲(chǔ)服務(wù): 高可用服務(wù)---keepalived實(shí)現(xiàn)
高可用服務(wù)---分布式存儲(chǔ)
備份服務(wù):
面試題: 公司的數(shù)據(jù)是如何備份

2) 內(nèi)部員工如何遠(yuǎn)程訪問架構(gòu)
部署搭建VPN服務(wù)器 PPTP vpn
https://blog.oldboyedu.com/pptp-l2tp/
3) 內(nèi)部員工操作管理架構(gòu)服務(wù)器要進(jìn)行審計(jì)
跳板機(jī)服務(wù)器 jumpserver
https://jumpserver.readthedocs.io/zh/docs/setup_by_centos.html
4) 架構(gòu)中服務(wù)器出現(xiàn)問題需要進(jìn)行提前報(bào)警告知
部署監(jiān)控服務(wù)器 zabbix
第2章 綜合架構(gòu)規(guī)劃
主機(jī)名稱和IP地址規(guī)劃

03. 優(yōu)化配置模板主機(jī)
1) 進(jìn)行網(wǎng)絡(luò)配置
a 添加網(wǎng)卡
b 配置網(wǎng)卡
vim /etc/sysconfig/network-scripts/ifcfg-eth1
c 確認(rèn)網(wǎng)絡(luò)配置
2) 系統(tǒng)優(yōu)化過程
1. 模板機(jī)優(yōu)化配置---hosts文件配置

第3章 優(yōu)化配置模板主機(jī)
1. 進(jìn)行網(wǎng)絡(luò)配置
- 添加網(wǎng)卡
- 配置網(wǎng)卡
vim /etc/sysconfig/network-scripts/ifcfg-eth1 - 確認(rèn)網(wǎng)絡(luò)配置



2. hosts文件配置

3. 更改yum源

4. 關(guān)閉selinux

5. 關(guān)閉iptables

6. 提權(quán)oldboy可以sudo (可選配置)

7. 英文字符集

8. 時(shí)間同步
yum install -y ntpdate
echo '#time sync by lidao at 2017-03-08' >>/var/spool/cron/root
echo '*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1' >>/var/spool/cron/root
crontab -l

9. 加大文件描述
yum install -y lsof
lsof -i:22
#加大文件描述
echo '* - nofile 65536' >>/etc/security/limits.conf
tail -1 /etc/security/limits.conf
說明:
一個(gè)服務(wù)程序運(yùn)行起來(lái),會(huì)打開相應(yīng)的文件
crond定時(shí)任務(wù)服務(wù)---systemctl start crond --- 打開相應(yīng)文件
/var/spool/cron/root --- 加載打開配置文件
/var/log/cron --- 加載打開日志文件

10. 安裝其他小軟件

11. ssh連接速度慢優(yōu)化
sed -i.bak 's@#UseDNS yes@UseDNS no@g;s@^GSSAPIAuthentication yes@GSSAPIAuthentication no@g' /etc/ssh/sshd_config
systemctl restart sshd

12. 修改主機(jī)名
修改主機(jī)名稱
hostnamectl set-hostname backup
修改主機(jī)地址

