使用清漆+ Nginx的时重定向循环(HTTPS)(Redirect loop when using

2019-10-21 14:01发布

我试图用清漆和Nginx的使用HTTPS一个WP网站。

一切工作正常使用缓存文件,但是当光油发现一些不应该缓存,它发回给Nginx的。 在这一点上,Nginx的是发送HTTPS请求,再次清漆引起无限循环。

我已经尝试了很多东西,并搜索在互联网上很多,但迄今没有奏效。

这是正在发回的东西光油的例子:

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;
}

我想,光油与发送return(pass)把数据传回Nginx的,但我不现在如何使用其他位置的块数据。

我怎样才能在Nginx的赶上这是从上光油来的请求,并和从正规433端口来的请求之间区分?

提前致谢!

Answer 1:

我发现这个问题:HHVM。

我创造了另一个后端没有HHVM上的Nginx(端口9433)并没有在光油如下:

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);
}

因此,当页面是不缓存它进入端口9433不使用HHVM。

现在伟大的工作。



Answer 2:

这可能已被HHVM期待通过端口443请求(HTTPS)导致重定向到HTTPS,在清漆再次结束了引起的。



Answer 3:

尝试添加:

fastcgi_param HTTPS on;

与您的fastcgi_pass到PHP的位置块。 我这里有这个确切的问题: https://serverfault.com/questions/670620/nginx-varnish-hhvm/670857



文章来源: Redirect loop when using Varnish + Nginx (HTTPS)