Wordpress 使用清漆时重定向循环+;Nginx(HTTPS)
我试图在一个使用HTTPS的WP站点中使用Varnish和Nginx 缓存的文件一切正常,但当Varnish发现不应该缓存的内容时,它会将其发送回Nginx。 此时,Nginx再次向Varnish发送HTTPS请求,导致无限循环 我尝试了很多东西,在互联网上搜索了很多次,但到目前为止没有任何效果 这是Varnish返回的一个示例:Wordpress 使用清漆时重定向循环+;Nginx(HTTPS),wordpress,loops,nginx,https,varnish,Wordpress,Loops,Nginx,Https,Varnish,我试图在一个使用HTTPS的WP站点中使用Varnish和Nginx 缓存的文件一切正常,但当Varnish发现不应该缓存的内容时,它会将其发送回Nginx。 此时,Nginx再次向Varnish发送HTTPS请求,导致无限循环 我尝试了很多东西,在互联网上搜索了很多次,但到目前为止没有任何效果 这是Varnish返回的一个示例: if (req.url ~ "/wp-(login|admin|cron)") { # Don't cache, pass to backend
if (req.url ~ "/wp-(login|admin|cron)") {
# Don't cache, pass to backend
return (pass);
}
这是Nginx定位块,它处理433:
location / {
# Send request to varnish
proxy_pass http://127.0.0.1:8888;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port 443;
proxy_set_header Host $host;
}
我猜Varnish正在使用返回(pass)
将数据发送回Nginx,但我现在不知道如何使用另一个位置块呈现该数据
如何在Nginx中捕获来自Varnish的请求,并将其与来自常规433端口的请求区分开来
提前谢谢 我发现了问题:HHVM 我在Nginx(端口9433)上创建了另一个没有HHVM的后端,并在Varnish中执行了以下操作:
backend no_hhvm {
.host = "127.0.0.1";
.port = "9433";
}
然后
# Either the admin pages or the login
if (req.url ~ "/wp-(login|admin|cron)") {
# Don't cache, pass to backend
set req.backend = no_hhvm;
return (pass);
}
因此,当页面未缓存时,它将转到不使用HHVM的端口9433
现在工作得很好。这可能是因为hhvm期望通过端口443(https)发出请求,导致重定向到https,最终再次出现清漆。尝试添加:
fastcgi_param HTTPS on;
将fastcgi_传递到php的位置块。我在这里遇到了一个确切的问题: