首先需要說一下伺服器配置,只要你的伺服器配置高於1核2G,均可使用該基礎設施來管理你的個人伺服器,你可以在服務中部署幾個應用,並且把該伺服器作為你的測試伺服器來使用。但是你的應用過多,或者QPS稍大,可以相應地加強伺服器配置。
現在來簡述下一個低配置的個人伺服器的基礎設施架構圖
Traefik
架構圖的最核心位置是 traefik
,一個 Edge Router
,它也是該基礎設施的重點。
伺服器內的所有應用服務,如 postgres
,redis
以及自己所寫的應用服務,都與 traefik
置於一個網路下,它們共同組成了一個叢集。
以下是我使用它的理由
- 熱更新配置,無需重啟
- 自動服務發現與負載均衡
- TLS/SSL 證書的自動生成
- 與
docker
的完美整合,基於container label
的配置 - 漂亮的
dashboard
介面
關於 traefik
可以參考文章 Traefik 簡易配置及入門
請求路由
從圖左側可以看出,請求路由分為兩大類。當然他們的路由規則都是通過 traefik
來控制
shanyue.tech
通過公有的域名提供公有的、可供網際網路訪問的服務。如部落格,微信公眾號開發,個人網站及後端服務等等shanyue.local
通過私有的域名提供私有的、只供內部進群訪問的服務,保證安全性。如資料庫,redis等等
應用與服務
在圖右側,都是個人伺服器裡的應用,它們均是通過 docker-compose
部署。你可以在 shfshanyue/op-note:compose 中找到所有的配置檔案
只需要 docker-compose up -d
即可啟動
whoami
: 一個用以測試的服務,測試負載均衡及路由匹配等dns
: 叢集內 DNS 服務,給自己的私有域名shanyue.local
做解析openvpn
:與個人筆記本搭建區域網,方便訪問個人伺服器上服務以及除錯頁面postgres
redis
本章將會講述如何部署它們以及它們的配置檔案。不過在此之前,你需要對 docker
以及 docker-compose
瞭解一些,參考以前文章
私有服務
shanyue.local
路由所提供的服務都是私有服務,通過 dnsmasq
與 openvpn
在個人筆記本上進行訪問。
監控
個人伺服器自然也需要監控,如負載,CPU,記憶體,網路,磁碟等。如果你伺服器配置較高,且中有重要應用在跑時可以使用 prometheus
與 grafana
搭建一套監控系統,但是作為一個輕量的個人伺服器,這樣就顯得小題大做,而且消耗極其資源。
關於該雲伺服器的 metric
可以直接在阿里雲的監控皮膚上進行檢視。但對於輕量的個人伺服器,可以使用 htop
與 ctop
兩個簡單的命令列工具來搞定
htop
監控程式指標ctop
監控容器指標
我是山月,可以加我微信
shanyue94
與我交流,備註交流。另外可以關注我的公眾號【全棧成長之路】