Nginx中的Symfony https +清漆+ apache http =重定向循环或

时间:2018-08-28 09:02:04

标签: symfony varnish liipimaginebundle fosjsroutingbundle

我有配置 Nginx中的Symfony https +清漆+ Apache http =重定向循环

我设置了路由以获得链接的方案https:['https'] 但是为什么要获得重定向循环? 它看起来symfony不仅会使用https创建链接,而且还会在获得http的情况下返回重定向-我需要使用http页面来缓存清漆,但需要链接https。

更新1 当我在路由中不使用任何模式并通过https运行页面时,几乎所有内容都能正常工作-无需

1 fos路由创建绝对http链接

2 liip想象同样的情况

1 个答案:

答案 0 :(得分:1)

如果尽管在访问页面时仍使用https,但仍重定向到https,则原始协议不会转发到处理响应的后端。

有一个头文件X-Forwarded-Proto,应将其设置为包含原始协议,然后再将其通过任何代理。 Symfony应该尊重该标头,并接受该请求是安全的并且不能重定向(并且还应将所有链接设置为https:// url)

您需要配置Apache(我以为这是终止https连接并具有证书)来设置此标头以匹配原始请求协议。

在Symfony遵循标题Symfony Docs for proxies

之前,您可能需要信任代理。
// public/index.php

// ...
$request = Request::createFromGlobals();

// tell Symfony about your reverse proxy
Request::setTrustedProxies(
    // the IP address (or range) of your proxy
    ['192.0.0.1', '10.0.0.0/8'],

    // trust *all* "X-Forwarded-*" headers
    Request::HEADER_X_FORWARDED_ALL
);