Nginx和Nginx+的比較

NginxNginx+的比較

 

一、Nginx+介紹

NginxNginx+都是Nginx官方的產品,兩者的不同之處在於Nginx是開源的社區版,而Nginx+則是Nginx面向企業級的收費版。

Nginx+收費情況如下:對於單實例部署,每年繳費1900美元;而對於多實例的部署,則需要聯繫Nginx官方來協商報價。

Nginx+也提供30天的免費試用,到期後仍需交費。

Nginx+只以二進制發行版提供,不提供源碼。

Nginx+Nginx開源社區版的基礎上,增加企業級的特性,比如:

  • 全功能的HTTPTCP負載均衡
  • 高性能的反向代理
  • 靜態內容和動態內容的緩存和卸載
  • 自適應流媒體教父音視頻內容到任意設備
  • 對應用敏感的健康檢查和高可用性
  • 提供儀錶板或API方式的高級活動監控
  • 高級監控和管理,提供對開發者友好的工具來管理和實時的變更
  • 會話持久性
  • 諮詢服務

二、NginxNginx+的比較

Nginx+具有一些Nginx社區版不具備的特性,包括:

1、高級HTTPTCP負載均衡

在負載均衡算法方面,Nginx+增加最少時間Least Time)的負載均衡算法。最少時間算法即請求被分發到擁有最快響應時間和最少活動連接的服務器節點。

2、會話持久性

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;

}

NginxNginx+的比較


[日期:2016-01-02]

來源:CSDN  作者:chszs

[字體:  ]

3、高級緩存控制

Nginx+可用作內容緩存,既可以對源站服務器起到加速作用,又可以作為CDN的邊緣節點。

Nginx+可以緩存來自upstream HTTP服務器的內容,並可通過FastCGISCGIuwsgi等服務返迴響應。

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服務器響應2xx3xx則認為服務器健康運行,否則認為服務器存在故障。比如:

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

HLSHTTP Live StreamingHTTP實時流媒體。

VODVideo On Demand,點播。

HDSHTTP Dynamic StreamingHTTP動態流媒體。

支持HTTP實時流媒體(HLS/VOD),支持HTTP動態流媒體(HDS/VOD),針對MP4媒體的帶寬管理,支持RTMP流媒體等。

Nginx被廣泛用於交付MP4FLV視頻內容——使用漸進式下載方式或HTTP偽流(pseudo-streaming)。漸進式下載依賴於流媒體服務器處理磁盤I/O和並發連接的效率;而MP4FLV偽流功能允許客戶端使用簡單的定位播放技術,找到想要播放的視頻時間位置直接播放,無需下載整個資源。

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…

     

如果這文章對你有幫助,請掃左上角微信支付-支付寶,給於打賞,以助博客運營