第1章 中小規模網站架構組成
架構名詞介紹
1.什么是項目, 類似于手機的App,每一個app都可以算做一個項目。
2.什么是架構, 維護一個項目使用的一組服務器。
3.什么是集群, 為解決某個特定問題將多臺計算機組合起來形成的單個系統。
4.什么是高可用, 當一臺服務器不可用,另一臺服務器自動接管,保證業務不down機。
5.什么是負載均衡,將用戶的請求,分攤到多個操作單元上執行,保證服務器的穩定性。
架構訪問流程-用戶視角
1.用戶通過瀏覽器輸入oldboyedu.com->回車
2.瀏覽器會發生一次跳轉,分析URL->然后進行DNS解析->獲取真實的公網IP地址
3.用戶通過tcp的三次握手發起連接->真實的公網IP
4.連接會通過公網->路由器->交換機->抵達前端的硬件防火墻
5.防火墻根據自身訪問規則,進行匹配->如果惡意的連接則拒絕->如果是正常的連接則放行
6.防火墻會將連接轉發給負載均衡器->查看用戶請求的內容->根據內容進行任務下發->下發給web服務器
7.web服務接收請求后會根據請求進行判斷 如果是請求圖片或者附件->查找存儲服務器存儲的靜態資源 如果請求的網站上的內容->緩存服務器->如果緩存服務器沒有->數據庫 數據庫查詢完數據之后會返回數據給web服務器->同時也會返回一份給緩存服務器
8.數據庫返回內容->web服務器->負載均衡->用戶
架構訪問流程-運維視角
1.用戶通過公網連接(隧道)VPN服務器,這樣方便管理內部主機,
2.自動化配置管理,節省人力成本,便于后期維護。統一環境,標準化
3.自動化監控服務,監控系統的運行狀態,事前預警,事后追溯。
總結: 一個項目涵蓋了一套架構,一套架構又涵蓋了不同的角色(高可用、負載均衡、web集群) 五層架構模型--> 負載均衡 web服務 存儲服務 緩存服務 數據庫服務(通過tcp連接)
1) 顧客--用戶
訪問網站的人員
2) 保安--防火墻 (firewalld)
進行訪問策略控制
3) 迎賓--負載均衡服務器 (Nginx)
對用戶的訪問請求進行調度處理
4) 服務員---web服務器 (nginx)
處理用戶的請求
5) 廚師---數據庫服務器 (MySQL)
存儲的字符數據 (耳機 500 索尼 黑色 北京地址 訂單時間2019-05-05 13:00)
6) 廚師---存儲服務器 (nfs)
存儲圖片 音頻 視頻 附件等數據信息
7) 廚師---備份服務器 (rsync+crond-定時備份 rsync+sersync--實時備份)
存儲網站所有服務器的重要數據
8) 廚師---緩存服務器 (memcache redis mongodb)
a 將數據信息存儲到內存中
b 減緩服務器的壓力
9) 經理---批量管理服務器 (ansible)
批量管理多臺服務器主機
部署網站架構:
1) 需要解決網站架構單點問題
迎賓: 高可用服務---keepalived
數據庫: 高可用服務---mha
存儲服務: 高可用服務---keepalived實現
高可用服務---分布式存儲
備份服務:
面試題: 公司的數據是如何備份
2) 內部員工如何遠程訪問架構
部署搭建VPN服務器 PPTP vpn
https://blog.oldboyedu.com/pptp-l2tp/
3) 內部員工操作管理架構服務器要進行審計
跳板機服務器 jumpserver
https://jumpserver.readthedocs.io/zh/docs/setup_by_centos.html
4) 架構中服務器出現問題需要進行提前報警告知
部署監控服務器 zabbix
第2章 綜合架構規劃
主機名稱和IP地址規劃
03. 優化配置模板主機
1) 進行網絡配置
a 添加網卡
b 配置網卡
vim /etc/sysconfig/network-scripts/ifcfg-eth1
c 確認網絡配置
2) 系統優化過程
1. 模板機優化配置---hosts文件配置
第3章 優化配置模板主機
1. 進行網絡配置
- 添加網卡
- 配置網卡
vim /etc/sysconfig/network-scripts/ifcfg-eth1 - 確認網絡配置
2. hosts文件配置
3. 更改yum源
4. 關閉selinux
5. 關閉iptables
6. 提權oldboy可以sudo (可選配置)
7. 英文字符集
8. 時間同步
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
說明:
一個服務程序運行起來,會打開相應的文件
crond定時任務服務---systemctl start crond --- 打開相應文件
/var/spool/cron/root --- 加載打開配置文件
/var/log/cron --- 加載打開日志文件
10. 安裝其他小軟件
11. ssh連接速度慢優化
sed -i.bak 's@#UseDNS yes@UseDNS no@g;s@^GSSAPIAuthentication yes@GSSAPIAuthentication no@g' /etc/ssh/sshd_config
systemctl restart sshd
12. 修改主機名
修改主機名稱
hostnamectl set-hostname backup
修改主機地址