Varnish + Nginx + Wordpress:使用 Varnish get 的重定向循环

Varnish + Nginx + Wordpress:使用 Varnish get 的重定向循环

我有两个使用 Wordpress 和 Nginx 的网站,并试图将 Varnish 放在前面,但是当将 Nginx 的监听端口更改为 8080 时,所有网站都会进入重定向循环。

在启用的站点中,我将所有不同的主机通过文件分隔开,如下所示:

server {
    server_name xpto.xyz.com;
    root /usr/share/nginx/www/xpto.xyz.com;
    include global/common.conf;
    include global/wordpress.conf;
}

在 common.conf 中我配置了要监听的端口。

就 Varnish 而言,我在 Varnish 文件中有以下内容:

DAEMON_OPTS="-a :80 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -S /etc/varnish/secret \
             -s malloc,256m"

在 default.vcl 中有:

backend default {
    .host = "127.0.0.1";
    .port = "8080";
}
# Drop any cookies sent to Wordpress.
sub vcl_recv {
        if (!(req.url ~ "wp-(login|admin)")) {
                unset req.http.cookie;
        }
}
# Drop any cookies Wordpress tries to send back to the client.
sub vcl_fetch {
        if (!(req.url ~ "wp-(login|admin)")) {
                unset beresp.http.set-cookie;
        }
}

有人能帮助我吗?提前谢谢。

答案1

我认为您的 wordpress 可能正在进行重定向,因为它看到流量来自 127.0.0.1:8080 并希望重定向到规范站点名称。尝试使用curl从堆栈的不同层检索站点,您应该能够自己验证这一点。

相关内容