要激活的 Django、Nginx 和 Varnish gzip 参数
Django, Nginx & Varnish gzip params to be activated
我有一个带有 Gunicorn 的 Django 应用程序,通过 Varnish 并与 Nginx 一起使用。
MyDjangoApp --> Gunicorn --> Varnish --> Nginx --> 客户端
我必须保留哪个 gzip 参数?
在 Django 中?
MIDDLEWARE_CLASSES = (
# Remove Django Gzip middleware as we already have it in nginx ?
'django.middleware.gzip.GZipMiddleware',
....
在 Nginx 中 ?
http {
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
....
在清漆中?
sub vcl_backend_response {
if (bereq.url ~ "html$") {
set beresp.do_gzip = true;
}
....
我必须激活所有 confs 还是只激活 Nginx?
如果我在 Django 中为 ex 激活 GZipMiddleware,我不需要在 Varnish 和 Nginx 上激活它,否则我遗漏了什么?
我对应该在哪里进行 gzip 压缩的方法是这样的:
在 Varnish 后面的 Web 服务器上启用 gzip。
对于你的情况,你可以将它保存在 Django 中。
不要更改默认的 Varnish gzip 参数。 (让它使用 default behaviour 处理 gzip)
为什么?
- Varnish 可以在其缓存中存储 gzipped 对象(很好,节省存储空间)。
- 在提供缓存对象时不会花费 CPU 时间进行压缩(大多数客户端会要求压缩对象,而 Varnish 可以直接提供它)
因此,您可以通过在适当级别进行压缩来节省 CPU 和 RAM。
我有一个带有 Gunicorn 的 Django 应用程序,通过 Varnish 并与 Nginx 一起使用。
MyDjangoApp --> Gunicorn --> Varnish --> Nginx --> 客户端
我必须保留哪个 gzip 参数?
在 Django 中?
MIDDLEWARE_CLASSES = (
# Remove Django Gzip middleware as we already have it in nginx ?
'django.middleware.gzip.GZipMiddleware',
....
在 Nginx 中 ?
http {
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
....
在清漆中?
sub vcl_backend_response {
if (bereq.url ~ "html$") {
set beresp.do_gzip = true;
}
....
我必须激活所有 confs 还是只激活 Nginx? 如果我在 Django 中为 ex 激活 GZipMiddleware,我不需要在 Varnish 和 Nginx 上激活它,否则我遗漏了什么?
我对应该在哪里进行 gzip 压缩的方法是这样的:
在 Varnish 后面的 Web 服务器上启用 gzip。
对于你的情况,你可以将它保存在 Django 中。
不要更改默认的 Varnish gzip 参数。 (让它使用 default behaviour 处理 gzip)
为什么?
- Varnish 可以在其缓存中存储 gzipped 对象(很好,节省存储空间)。
- 在提供缓存对象时不会花费 CPU 时间进行压缩(大多数客户端会要求压缩对象,而 Varnish 可以直接提供它)
因此,您可以通过在适当级别进行压缩来节省 CPU 和 RAM。