1. 程式人生 > >Nginx負載均衡初識

Nginx負載均衡初識

charset 代理服務 mtp color 權重 高性能 目錄 ddr tp服務器

1.背景

  nginx是一款自由的、開源的、高性能的HTTP服務器和反向代理服務器;同時也是一個IMAP、POP3、SMTP代理服務器;nginx可以作為一個HTTP服務器進行網站的發布處理,另外nginx可以作為反向代理進行負載均衡的實現。

2.安裝

  (1)下載nginx最新版本到linux服務器上,解壓tar -zxvf nginx-1.13.8.tar.gz,進入解壓目錄 cd nginx-1.13.8,並進行手動安裝。

  (2)配置:./configure --prefix=/usr/local/nginx

  (3)編輯nginx:make

  (4)安裝:make install

  (5)啟動nginx:sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

3.修改配置

  在/usr/local/nginx/conf#目錄下執行vim nginx.conf,進行nginx的配置,采用輪詢的方式,端口號:8066,如下:

    #gzip  on;
    upstream test{
            server 192.168.1.15:8087 weight=10;
            server 192.168.1.15:8088 weight=10;
    }    
        
    server {
        listen       8066;
        server_name  localhost;

        #charset koi8-r;
    
        #access_log  logs/host.access.log  main;
    
        location / {
            proxy_pass http://test;
            root   html;
            index  index.html index.htm;
            proxy_redirect off;
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    

4.啟動nginx:./sbin/nginx

5.停止nginx:./sbin/nginx -s stop

6.通過http://localhost:8066負載均衡訪問192.168.1.15上的兩個服務。

7.負載均衡

  nginx支持的負載均衡調度算法方式如下:

  (1)weight輪詢(默認):接收到的請求按照順序逐一分配到不同的後端服務器,即使在使用過程中,某一臺後端服務器宕機,nginx會自動將該服務器剔除出隊列,請求受理情況不會受到任何影響。 這種方式下,可以給不同的後端服務器設置一個權重值(weight),用於調整不同的服務器上請求的分配率;權重數據越大,被分配到請求的幾率越大;該權重值,主要是針對實際工作環境中不同的後端服務器硬件配置進行調整的。

  (2)ip_hash:每個請求按照發起客戶端的ip的hash結果進行匹配,這樣的算法下一個固定ip地址的客戶端總會訪問到同一個後端服務器,這也在一定程度上解決了集群部署環境下session共享的問題。

  (3)fair:智能調整調度算法,動態的根據後端服務器的請求處理到響應的時間進行均衡分配,響應時間短處理效率高的服務器分配到請求的概率高,響應時間長處理效率低的服務器分配到的請求少;結合了前兩者的優點的一種調度算法。但是需要註意的是nginx默認不支持fair算法,如果要使用這種調度算法,請安裝upstream_fair模塊

  (4)url_hash:按照訪問的url的hash結果分配請求,每個請求的url會指向後端固定的某個服務器,可以在nginx作為靜態服務器的情況下提高緩存效率。同樣要註意nginx默認不支持這種調度算法,要使用的話需要安裝nginx的hash軟件包。

Nginx負載均衡初識