短視訊系統跟直播系統有一樣的特點,面向的使用者群體數量較大,聚集時間點集中。比如午飯時間,晚上休閑時間。是以做好系統的負載特别重要,既能提高系統的穩定性和可用性,從側面來講也能提高使用者的體驗和使用者留存。

負載均衡的表述性解釋咱不再說明,自行谷歌或百度即可。這裡主要介紹兩種負載均衡的方案。
方案一:使用營運商成熟的方案,比如阿裡雲的負載均衡SLB,騰訊雲的負載均衡CLB。這些成熟的方案穩定性高,運維成本低。隻需要日常維護後端服務即可,不過除非你是一定量級的大客戶,否則無法個性定制。
方案二:自建負載均衡,該方案需要有基礎的運維能力。需要運維人員持續跟蹤,可以自由擴充定制。前期數量級小的話,建議走這種方案。後期數量級大的話,還是走方案一比較穩妥一些。
這裡介紹下方案二自建負載均衡的方式。按照最小方案來舉例說明,均用1核1G5M帶寬的伺服器。注意:後期上線需要根據自身業務的情況進行配置擴充,這裡是做示範舉例用最低配置即可。
一、首先需要準備相關資料,如下:
1.系統域名
2.Nginx負載伺服器 1台(用于前台分發)。
3.Web 後端伺服器 2台(配置PHP環境,放置管理背景和接口)
4.Mysql 資料庫伺服器 1台(配置資料庫)
5.Redis 緩存伺服器 1台(配置緩存)
6.Session 共享伺服器 1台(共享資料Session)
7.以上伺服器必須存在一個内網中,響應速度等體驗會好一些。
二、其次将各個伺服器按照原始系統的搭建方式進行依次搭建。這裡重點說明下Nginx負載伺服器和Session緩存伺服器的搭建和配置方式。
1.Nginx負載伺服器的搭建,假設入口域名是yunbaozhibo.com
1.1安裝pcre(依次操作)
擷取pcre編譯安裝包,在在pcre.org/上可以擷取目前最新的版本。
解壓縮pcre-xx.tar.gz包
進入解壓縮目錄,執行./configure
執行安裝make & make install
1.2 安裝openssl(依次操作)
擷取openssl編譯安裝包,在openssl.org/source/上可以擷取目前最新的版本。
解壓縮openssl-xx.tar.gz包
進入解壓縮目錄,執行./config
執行安裝make & make install
1.3安裝zlib(依次操作)
擷取zlib編譯安裝包, zlib.net/上可以擷取目前最新的版本
解壓縮zlibxxx.zip包。注:這裡的tar包應該是有問題,沒法指令解壓,隻能換zip包
進入解壓縮目錄,執行./configure
1.4安裝Nginx
擷取nginx,在nginx.org/en/download.html上可以擷取目前最新的版本
解壓縮nginx-xx.tar.gz包
進入解壓縮目錄,執行./configure 這裡會自動關聯上邊的三個元件
1.5配置相關資訊
安裝完成後,nginx在/usr/local/nginx中, nginx.conf在該檔案下的conf中 nginx啟動在sbin中。
配置nginx.conf檔案
在http{}中的server{}前添加
upstream yunbaozhibo.com{
ip_hash; #第一次配置負載用ip_hash來處理session,後期修改為session複制
server 192.168.7.11:80; #這裡是web伺服器的内網ip
server 192.168.7.22:80; #這裡是web伺服器的内網ip
#這裡最好加一個簡單的後備server,web全挂後跳轉到他,友情提示下伺服器正在維護。
}
在http{}中的server{}中的location /{}添加
proxy_pass yunbaozhibo.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X_Forwarded-For $proxy_add_x_forwarded_for;
配置完後,啟動nginx /usr/local/nginx/sbin/nginx
2.Session伺服器的配置,假設Session的伺服器ip為192.168.7.2。Redis端口為1122
這裡的Session伺服器是使用Redis來緩存共享Session的。
2.1正常安裝并啟動Redis服務
2.2 找到web伺服器中的php.ini檔案,修改如下
找到;session.save_handler = files
改為session.save_habdler = redis
找到;session.save_path = “/tmp”
改為session.save_path = “tcp://192.168.7.2:1122”