1. 程式人生 > >Linux配置Nginx負載均衡

Linux配置Nginx負載均衡

首先先了解下負載均衡,假設一個場景,如果有1000個客戶同時訪問你伺服器時,而你只有一臺伺服器的Nginx,且只有一個MySQL伺服器,那麼這些請求可能會高出你的的伺服器承受能力,就會down掉。

解決方法:

1.垂直升級:就是增加伺服器的配置,CPU,記憶體等

2.水平升級:新增多臺伺服器來分擔伺服器壓力

常見的負載均衡器

根據工作在的協議層劃分可劃分為:

  • 四層負載均衡:根據請求報文中的目標地址和埠進行排程
  • 七層負載均衡:根據請求報文的內容進行排程,這種排程屬於「代理」的方式

根據軟硬體劃分:

  • 硬體負載均衡:
    • F5 的 BIG-IP
    • Citrix 的 NetScaler
    • 這類硬體負載均衡器通常能同時提供四層和七層負載均衡,但同時也價格不菲
  • 軟體負載均衡:

     

     配置Nginx負載均衡

     

    • TCP 層:LVS,HaProxy,Nginx
    • 基於 HTTP 協議:Haproxy,Nginx,ATS(Apache Traffic Server),squid,varnish
    • 基於 MySQL 協議:mysql-prox

      vi /nignx目錄/nginx.conf

      #新增下面這段 backend可以自由命名

      upstream backend {

      •    #新增伺服器到負載均衡

             server 192.168.1.252;

                     server 192.168.1.251 weight=2;#設定該伺服器在負載均衡中的權重  預設為1;越高則訪問的頻次越大

                     server 192.168.1.252 down;  #表示down掉這臺伺服器,不參與負載均衡

                     server 192.168.1.247 backup; #備用伺服器 當其他伺服器很忙或者down掉之後才會啟動這臺的

                 }

        #配置引數
        #max_fails :允許請求失敗的次數預設為1.當超過最大次數時,返回proxy_next_upstream 模組定義的錯誤

        #fail_timeout:max_fails次失敗後,暫停的時間。

         

        server {

                listen       80;

                server_name  localhost;

         

                location / {

                     #反向代理的地址

                     proxy_pass http://backend;     

                }

        }
        這樣子就已經配置完成了

        訪問localhost,如果三臺伺服器能輪詢切換就證明配置成功