一、負載平衡
當一台伺服器的單位時間內的存取量越大的時候,伺服器的壓力會越大。當一台伺服器壓力大得超過自身的承受能力的時候,伺服器會崩潰。為了避免伺服器崩潰,讓使用者有更好地體驗,我們通常透過負載平衡的方式來分擔伺服器的壓力。
那麼什麼是負載平衡呢?我們透過建立很多伺服器,把這些伺服器組成一個伺服器集群,然後,當使用者造訪我們網站的時候,先訪問一個中間伺服器,再讓這個中間伺服器在伺服器集群中選擇一個壓力較小的伺服器,然後將此存取請求引入該選擇的伺服器。
這樣,使用者的每次訪問,都會保證伺服器叢集中的每個伺服器的壓力趨於平衡,分擔了伺服器壓力,避免了伺服器崩潰的情況。負載平衡就是採用反向代理的想法。
二、Nginx中負載平衡的實作
Nginx是一款可以透過反向代理實現負載平衡的伺服器,使用Nginx服務實現負載平衡的時候,使用者的存取權首先會存取到Nginx伺服器,然後Nginx伺服器再從伺服器叢集表中選擇壓力較小的伺服器,然後將該存取請求引向該伺服器。若伺服器叢集中的某個伺服器崩潰,那麼從待選伺服器清單中將該伺服器刪除,也就是說伺服器假如崩潰了,那麼Nginx就肯定不會將存取要求引入該伺服器了。
1、建立fzjh.conf設定檔
在/usr/local/nginx/conf下建立fzjh.conf文件,檔案內容如下:
user nobody; worker_processes 2; events { worker_connections 1024; } http{ #=upstream设置负载均衡的待选服务器列表,在运行中如果有服务器崩溃那该服务器就会在该列表中移除 upstream mypro{ server 219.133.55.36;#中国万维网 server 115.239.210.27;#百度的ip } server{ listen 8080; #====== 对ngnix更目录做负载均衡=== location / { #==选择要代理的服务器要与upstream对应========== proxy_pass http://mypro; } } }
2、載入fzjh.conf設定檔
執行指令:
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/fzjh.conf
3、測試是否成功
#這裡我們的負載平衡待選伺服器清單是百度和中國萬維網,也就說我們訪問我的主機名稱8080 就可以進行測試,如果頁面在百度與中國萬維網中切換,就表示成功。
本文來自Nginx使用教學欄位:http://www.php.cn/nginx/
以上是nginx怎麼做負載平衡的詳細內容。更多資訊請關注PHP中文網其他相關文章!