代理缓冲
通常,代理缓冲只会在您生成非常大的网页或发送大型文件时帮助您。无论如何,它很容易设置,但你需要将缓冲区大小调整到大约最大页面的大小+ 20%(任何不适合缓冲区的页面都写入磁盘),或选择性地启用代理缓冲你最大的页面。
文档:
http://wiki.nginx.org/HttpProxyModule#proxy_buffering
高速缓存
我不太了解您的应用程序以及它的内容是多么动态,但在您的应用程序上设置正确的Cache Control / ETAG标头生成将是您首先想要查看的内容。这就是让Nginx知道代理安全的原因。此外,您可能希望设置多个缓存区域来管理缓存在磁盘上占用的空间量。
proxy_cache one;
proxy_cache_path /data/nginx/cache/one levels=1:2 max_size=1G keys_zone=one:1000m;
</code>
您将需要允许您绕过缓存的规则(用于调试或以编程方式)
proxy_cache_bypass $cookie_nocache $arg_nocache $arg_comment;
proxy_cache_bypass $http_pragma $http_authorization;
</code>
当应用程序抛出错误时,您还希望无条件地从缓存中提供应用程序:
proxy_cache_use_stale error timeout invalid_header;
</code>
文档:
http://wiki.nginx.org/HttpProxyModule#proxy_cache
http://wiki.nginx.org/HttpProxyModule#proxy_cache_path
http://wiki.nginx.org/HttpProxyModule#proxy_cache_use_stale
Gzip已
在您的站点上启用gzip始终是CPU时间和带宽之间的权衡。确实,如果您对内容进行gzip,则可以降低通过线路发送的数据量,但如果您在T1 Micro上运行,则会因CPU利用率严重限制代理请求的容量。一般来说gzip对于静态内容来说是一个更好的想法,你可以预先压缩然后反复服务。
(是的,gzip支持json,但这是因为gzip成为有线格式,并且被客户端透明地解压缩。你应该阅读
Content-Encoding: gzip
)
文档:
http://betterexplained.com/articles/how-to-optimize-your-site-with-gzip-compression/
杂项
您还需要设置一些misc设置:
# Directives turn off 404 error logging.
location ~* .(js|css|png|jpg|jpeg|gif|ico)$ {
log_not_found off;
}
</code>