Nginx和Nginx+的比较(下)

Nginx和Nginx+的比较(下)

作者:chszs,未经博主允许不得转载。经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs

内容紧接上一篇《Nginx和Nginx+的比较(上)》,见:http://blog.csdn.net/chszs/article/details/50439078

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;
}

你可能感兴趣的:(nginx,流媒体,健康检查,nginx+,内容缓存)