Nginx和Nginx+的比较(下)
作者:chszs
内容紧接上一篇《Nginx和Nginx+的比较(上)》
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;
}