為什麼現在有非常多的聰明人都在致力於互聯網? 最近在讀埃隆·馬斯克傳記,他說「我認為現在有非常多的聰明人都在致力於互聯網」。 仔細一想,好像真的是這樣的。 我問了自己一個問題:如果你不敲代碼了,你能做什麼? 答案令人極其恐怖。嚇得我趕緊又去寫了一句 system.out.print("Hello W ...
為什麼現在有非常多的聰明人都在致力於互聯網?
最近在讀埃隆·馬斯克傳記,他說「我認為現在有非常多的聰明人都在致力於互聯網」。
仔細一想,好像真的是這樣的。
我問了自己一個問題:如果你不敲代碼了,你能做什麼?
答案令人極其恐怖。嚇得我趕緊又去寫了一句 system.out.print("Hello World");
為什麼要做負載均衡?
當你網站是一個企業站、個人博客的時候,或者訪問量比較小的時候,一臺伺服器完全應付的了,那就完全沒必要做負載均衡。但是,如果你的網站是平臺級別,用戶至少百萬級別了,一臺伺服器明顯撐不住了,那就要考慮多台伺服器,這個時候每個伺服器分配多少用戶,負載均衡是最好的解決方式。舉個大的不是很恰當的慄子:淘寶網。
對於互聯網服務,負載平衡器通常是一個軟體程式,這個程式偵聽一個外部埠,互聯網用戶可以通過這個埠來訪問服務,而作為負載平衡器的軟體會將用戶的請求轉發給後臺內網伺服器,內網伺服器將請求的響應返回給負載平衡器,負載平衡器再將響應發送到用戶,這樣就向互聯網用戶隱藏了內網結構,阻止了用戶直接訪問後臺(內網)伺服器,使得伺服器更加安全,可以阻止對核心網路棧和運行在其它埠服務的攻擊。
當所有後臺伺服器出現故障時,有些負載平衡器會提供一些特殊的功能來處理這種情況。例如轉發請求到一個備用的負載平衡器、顯示一條關於服務中斷的消息等。負載平衡器使得IT團隊可以顯著提高容錯能力。它可以自動提供大量的容量以處理任何應用程式流量的增加或減少。(摘自維基百科)
怎麼做?
這裡我們用 Nginx 做負載均衡,nginx 是一款面向性能設計的 HTTP ,穩定性高的反向代理伺服器,可以做負載均衡和 HTTP緩存。
基於上篇的安裝路徑,配置 nginx.conf :
vi /usr/local/nginx/conf/nginx.conf
配置代碼:
upstream mysite {
server 192.168.198.128:8080;
server 192.168.198.128:8090;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
proxy_pass http://mysite;
}
上邊的192.168.198.128:8080
,192.168.198.128:8090
對應的兩個不同的網站頁面,這裡我只是在兩個不同的 Tomcat 下放了兩個靜態頁面,在瀏覽器輸入192.168.198.128
刷新,你會看到在這兩個 Tomcat 之間一替一次切換請求。
刷新:
不同伺服器分配不同的數量的用戶
這樣 nginx 也是支持的,只需要配置upstream
節點不同伺服器的權重就好了。我這裡按 1:3 進行的演示配置。
配置完成。
註意:目前這種簡單負載均衡配置,並不能共用 Session。