Nginx和Nginx+的比較
一、Nginx+介紹
Nginx和Nginx+都是Nginx官方的產品,兩者的不同之處在於Nginx是開源的社區版,而Nginx+則是Nginx面向企業級的收費版。
Nginx+收費情況如下:對於單實例部署,每年繳費1900美元;而對於多實例的部署,則需要聯繫Nginx官方來協商報價。
Nginx+也提供30天的免費試用,到期後仍需交費。
Nginx+只以二進制發行版提供,不提供源碼。
Nginx+在Nginx開源社區版的基礎上,增加企業級的特性,比如:
-
全功能的HTTP和TCP負載均衡
-
高性能的反向代理
-
靜態內容和動態內容的緩存和卸載
-
自適應流媒體教父音視頻內容到任意設備
-
對應用敏感的健康檢查和高可用性
-
提供儀錶板或API方式的高級活動監控
-
高級監控和管理,提供對開發者友好的工具來管理和實時的變更
-
會話持久性
-
諮詢服務
Nginx+具有一些Nginx社區版不具備的特性,包括:
在負載均衡算法方面,Nginx+增加“最少時間“(Least Time)的負載均衡算法。“最少時間“算法即請求被分發到擁有最快響應時間和最少活動連接的服務器節點。
HTTP是一個無狀態協議,故通常很多應用程序在本地存儲終端的狀態,而沒法在負載均衡環境中共享狀態。因為在服務器節點間實現客戶端的狀態共享意味着速度很慢,實現也很麻煩,故最常見的做法是把同一個終端負載均衡到同一個節點,那麼就無需在各節點間共享和同步其狀態信息。
Nginx+可以跟蹤用戶的會話,將終端用戶的請求分發給正確的upstream服務器節點。Nginx+提供三種方法來識別用戶的會話:
-
插入跟蹤信息到請求數據中
採用sticky cookie指令:
upstream backend {
server webserver1;
server webserver2;
sticky cookie srv_id expires=1h domain=.example.com path=/;
}
-
在會話中檢測請求
採用sticky learn指令:
upstream backend {
server webserver1;
server webserver2;
sticky learn create=$upstream_cookie_sessionid
lookup=$cookie_sessionid
zone=client_sessions:1m
timeout=1h;
}
-
跟蹤請求中的特定數據
採用sticky route指令:
upstream backend {
server webserver1 route=a;
server webserver2 route=b;
# $var1 and $var2 are run-time variables, calculated for each request
sticky route $var1 $var2;
}
Nginx和Nginx+的比較
下
|
[日期:2016-01-02] |
來源:CSDN 作者:chszs |
[字體:大 中 小] |
3、高級緩存控制
Nginx+可用作內容緩存,既可以對源站服務器起到加速作用,又可以作為CDN的邊緣節點。
Nginx+可以緩存來自upstream HTTP服務器的內容,並可通過FastCGI、SCGI、uwsgi等服務返迴響應。
Nginx+擴展了Nginx的內容緩存功能,增加了緩存清除功能和緩存狀態可視化監控功能,在活動監控儀錶板上可以看到。
內容緩存可以減少網頁的加載時間,減少源站服務器的負載壓力等。具體來說,內容緩存帶來了如下好處:
-
提升了網站性能:Nginx+把各種類型的內容緩存為靜態內容,減少了客戶端的等待響應時間。
-
提升了源站服務器的負載能力:Nginx+降低了源站服務器對重複內容的請求數,使得源站服務器能夠響應更多的請求。
-
提升了可用性:當源站服務器崩潰時,由於存在內容緩存,部分客戶端的請求仍然能得到響應,可用性提升。
要啟用內容緩存功能,使用proxy_cache_path指令和proxy_cache指令。比如:
# Define a content cache location on disk
proxy_cache_path /tmp/cache keys_zone=mycache:10m inactive=60m;
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://localhost:8080;
# reference the cache in a location that uses proxy_pass
proxy_cache mycache;
}
}
4、應用的健康檢查
Nginx+可以對upstream服務器節點進行基本的健康檢查,顯着地改善了HTTP應用和TCP應用的可靠性。
Nginx+會持續不斷地檢查upstream服務器是否可用,這使得終端用戶不會看到服務器不可用的故障頁面。
使用health_check指令進行健康檢查,默認是每5秒檢查upstream服務器一次。如果upstream服務器響應2xx或3xx則認為服務器健康運行,否則認為服務器存在故障。比如:
location / {
proxy_pass http://backend;
# Enable simple health checks
health_check;
}
upstream backend {
# Health-monitored upstream groups must be stored in shared memory
zone backend 64k;
server web-server1;
server web-server2;
}
5、支持HTTP實時流媒體(HLS/VOD)
HLS即HTTP Live Streaming,HTTP實時流媒體。
VOD即Video On Demand,點播。
HDS即HTTP Dynamic Streaming,HTTP動態流媒體。
支持HTTP實時流媒體(HLS/VOD),支持HTTP動態流媒體(HDS/VOD),針對MP4媒體的帶寬管理,支持RTMP流媒體等。
Nginx被廣泛用於交付MP4和FLV視頻內容——使用漸進式下載方式或HTTP偽流(pseudo-streaming)。漸進式下載依賴於流媒體服務器處理磁盤I/O和並發連接的效率;而MP4或FLV偽流功能允許客戶端使用簡單的“定位播放“技術,找到想要播放的視頻時間位置直接播放,無需下載整個資源。
Nginx+的HLS/VOD模塊支持以MP4文件容器封裝的H.264/AAC編碼的媒體內容,文件擴展名為.mp4、.m4v、.m4a等。
下面是配置示例:
location /hls/ {
hls; # Use the HLS handler to manage requests
# Serve content from the following location
alias /var/www/video;
# HLS parameters
hls_fragment 8s;
hls_buffers 10 10m;
hls_mp4_buffer_size 1m;
hls_mp4_max_buffer_size 5m;
}
以下文章點擊率最高
Loading…