1

我找到了这个例子http://projects.unbit.it/uwsgi/wiki/Example(参见:Varnish and nginx, the best way (0.9.8.4)),它建议将 Varnish 放在 Nginx 和 uWsgi 之间。

我正试图让这个适用于我的 Django 网站。

一切都在运行,但是当我使用 varnishlog 时,访问我的网站时看不到任何显示。看来清漆的作用不大。

我的配置是:

Nginx:(将真实域名替换为“域”)

upstream uwsgi_staging {
    server 127.0.0.1:3031;
}


server {
    listen 80;
    server_name domain.com;

    root /var/www/domain/staging/src/;

    location / {
        uwsgi_pass uwsgi_staging;
        include uwsgi_params;
    }
}

uWSGI:(皇帝进程使用的.ini conf文件的相关部分)

socket = 127.0.0.1:3031
protocol = http
module = website.wsgi:application

漆:

/etc/默认/清漆

DAEMON_OPTS="-a :6081 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -S /etc/varnish/secret \
             -s file,/var/lib/varnish/$INSTANCE/varnish_storage.bin,1G"

/etc/varnish/default.vcl

backend uwsgi {
    .host = "127.0.0.1";
    .port = "3031";
}


sub vcl_recv {    
    set req.backend = uwsgi;
}
4

1 回答 1

2

Varnish 仅提供对未设置任何 cookie 的请求的缓存响应。您需要确保取消设置不必要的 cookie 以释放 varnish 的全部功能。

您可能想看看这个关于处理 varnish + django 的 cookie 请求的漂亮摘要/示例

于 2013-12-04T13:51:39.677 回答