天天看點

Nginx 虛拟主機配置及負載均衡

虛拟主機配置:

 在現實中,公司為了充分利用伺服器資源 , 一台 Nginx 伺服器會同時挂多個站點,這些站點可以基于80端口配置 N 多不同域名的伺服器,那麼,怎樣實作這一功能呢,接下來就讓我們學習一下,虛拟主機的配置

    首先,分别建立兩個不同網站的目錄:

       mkdir  -p  /data/html/{a,b}

    修改 Nginx 配置檔案中的 server 段

    server{

        listen        80;

        location / {

            root        /data/html/a;

            index    index.html    index.htm

        }

    }

    server{

            root        /data/html/b;

通過修改用戶端 HOSTS 指向兩個域名,在浏覽器中用域名通路測試效果

負載均衡配置:

    Nginx 通過配置 upstream 參數達到均衡後端多個執行個體

        Nginx 的upstream 目前支援 5 種算法配置設定方式:

            1> 輪詢(預設 rr )

                每個請求按時間順序逐一配置設定到後端不同的伺服器,如果後端某台面伺服器 

            down掉,自動剔除,待恢複自動添加上。

            2>Weight  權重

                指定輪詢權重,權重越高,處理的請求越多,weight 和通路比率成正比,用于

            後端伺服器性能不均的情況下

            3>ip_hash

                每個請求根據通路的IP 的 hash 結果配置設定,這樣每個訪客固定通路一個後端伺服器,可以解決 session 的問題,一般用于登陸會話。

            4>fair (第三方)

                按後端伺服器的響應時間來配置設定請求,響應時間越短的優先配置設定。

            5>url_hash (第三方)

                upstream  的 fail_timeout 和 max_fails 參數是用來判斷負載均衡 upstream 中的某個 server 是否失效。

在nginx.conf 裡簡單的配置一個 app_web 均衡

            upstream  app_web {

                server   10.10.1.11:8080 weight=1 max_fails=2fail_timeout=30s;

                      server   10.10.1.12:8080 weight=1 max_fails=2fail_timeout=30s;

            }

        ***注:均衡兩台後端JAVA服務,在30秒内nginx會與後端的某個server通信檢測,如果檢測連接配接失敗2次,則Nginx會認為該server已經失效,然後踢出轉發清單,然後在接下來的30s内,nginx不再講請求轉發給失效的server

            更多參數:

             fail_timeout指定在多長時間内失敗max_fails 次,将視為該 server 失效,踢出轉發清單

            proxy_connect_timeout和proxy_read_timeout來控制響應時間

            proxy_read_timeout:連接配接成功後_等候後端伺服器響應時間,其實已經進入後端的排隊之中等候處理(也可以說是後端伺服器處理請求的時間)   

                proxy_send_timeout :後端伺服器資料回傳時間,在規定時間之内後端伺服器必須傳完所有的資料。

                keepalive_timout:一個http産生的tcp連接配接在傳送完最後一個響應後,還需要等待多少秒後,才關閉這個連接配接

本文轉自 菜鳥的征程 51CTO部落格,原文連結:http://blog.51cto.com/songqinglong/1688140