虛拟主機配置:
在現實中,公司為了充分利用伺服器資源 , 一台 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