我有两个使用 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
从堆栈的不同层检索站点,您应该能够自己验证这一点。