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…