10.Nginx极速版-其他常见指令
Gzip
压缩响应通常会显著减小传输数据的大小。但是,由于压缩发生在运行时,因此它还会增加相当大的处理开销,从而对性能产生负面影响。NGINX在将响应发送到客户端之前执行压缩,但如果后端服务器已经对内容进行了压缩,则nginx不会再压缩。
若要启用压缩,请在参数中包含 gzip 指令。
gzip on;
gzip_types text/plain application/xml;
gzip_min_length 1000;
默认情况下,NGINX仅使用压缩MIME类型是text/html的响应。若要使用其他 MIME 类型压缩响应,可以使用 gzip_types 指令并列出其他类型。
若要指定压缩响应的最小长度,请使用 gzip_min_length 指令。默认值为 20 个字节(此处调整为 1000,即大于一千个字节才进行压缩)。
sendfile
默认情况下,NGINX处理文件传输本身,并在发送之前将文件复制到缓冲区中。启用 sendfile 指令可消除将数据复制到缓冲区的步骤,直接将一个文件复制到另一个文件。
启用sendfile,类似Java中的零拷贝(zero copy)
location /download {
sendfile on;
tcp_nopush on;
#...
}
将 tcp_nopush 指令与 sendfile 指令一起使用。这使NGINX能够在获得数据块后立即在一个数据包中发送HTTP响应标头。
try_files
try_files指令可用于检查指定的文件或目录是否存在;如果不存在,则重定向到指定位置。
如下,如果原始URI对应的文件不存在,NGINX将内部重定向到/www/data/images/default.gif
server {
root /www/data;
location /images/ {
try_files $uri /images/default.gif;
}
}
最后一个参数也可以是状态代码(状态码之前需要加上等号)。
在下面的示例中,如果指令的所有参数都无法解析为现有文件或目录,则会返回404错误。
location / {
try_files $uri $uri/ $uri.html =404;
}
在下一个示例中,如果原始 URI 和附加尾随斜杠的 URI 都没有解析到现有文件或目录中,则请求将重定向到命名位置,该位置会将其传递到代理服务器。
location / {
try_files $uri $uri/ @backend;
}
location @backend {
proxy_pass http://backend.example.com;
}
error_page
为错误指定显示的页面。值可以包含变量。
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 程序员小航
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果