Nginx簡介及配置詳解(二)


 對於一個大型網站來說,隨着網站訪問量的快速增長,單台服務器已經無法承擔大量用戶的並發訪問,必須以增加服務器的方式,提高計算機系統的處理能力,計算速度,進而滿足當前業務量的需求。那么如何實現服務器之間的協同功能呢?Nginx提供的反向代理負載均衡功能是一個很好的解決方案。

反向代理

  在Nginx服務器中,反向代理的配置非常簡單,最主要的指令就是“proxy_pass”,用於設置后端服務器的地址。

server {
        listen       80;
       server_name  localhost;
       location / { 
       proxy_pass http://localhost:9000;
    }
}
View Code

如上配置 所有 http://localhost:80的請求都會被轉發到http://localhost:9000。

負載均衡

 負載均衡就是將負載分攤到多個操作單元上執行,從而提高服務的可用性和響應速度,帶給用戶更好的體驗。

 Nginx默認支持輪詢、權重、ip Hash等多種負載均衡策略。

  • 輪詢:默認設置方式,每個請求按時間順序逐一分配到不同的后端服務器進行處理,可以自動剔除宕機服務器。
  • 權重方式:利用weight指定輪詢的權重比率,用於后端服務器性能不均的情況。
  • ip_hash方式:每個請求按照IP的hash結果分配,這樣可以讓每個訪客每次請求都訪問同一個后端服務器,可以解決session共享的問題。
  • 第三方模塊:fair或url_hash等策略,nginx本身不包含該實現,需要下載對應的軟件包。

輪詢配置:

server {
        listen       80;
       server_name  localhost;
       location / { 
       proxy_pass http://web_server;
    }
}
#配置負載均衡服務器組 輪詢方式
upstream web_server
{
      server  192.168.78.128;
      server   192.168.78.129;
}
View Code

權重方式配置:

upstream web_server1
{
      server  192.168.78.128 weight=1;
      server   192.168.78.129 weight=3;
}

upstream web_server2
{
      server  192.168.78.128 weight=1 max_fails=1 fail_timeout=2;
      server   192.168.78.129 weight=3;
     server 192.168.78.130   backup;
}
View Code

按上圖web_server1配置后,3/4的流量會轉發到192.168.78.129的服務器上,1/4的流量會轉發到192.168.78.128的服務器上,web_server2的配置表示 nginx在2s內發現后端服務異常達到max_fails次,就將該服務器標記為不可用。backup標記為預留的備份機器,當上面上個服務都宕機時,會將流量轉發到備份機器。

IP Hash方式:

upstream web_server1
{
      ip_hash;
      server  192.168.78.128;
      server   192.168.78.129;
      server   192.168.78.130 down;
}
View Code

down參數可以將服務器標記為下線狀態,在路由分配時,會忽略該服務器。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM