3.3修复trusted_proxies配置Symfonyob娱乐下载
2017年5月25日·发表的哈维尔Eguiluz
这个问题
如果你现有Symfony应用程序升级到新的3.3.0版ob娱乐下载本,您可能会看到这个错误(取决于您的应用程序配置):
”框架。trusted_proxies”配置关键在Symfony 3.3中被移除。ob娱乐下载
解决方案
删除framework.trusted_proxies
从你的配置文件,并调用选项要求::setTrustedProxies ()
前端控制器的方法。
例如,如果您的原始配置如下:
1 2 3 4
# app / config / config.yml框架:#……trusted_proxies:[192.0.0.1,10.0。0。0/ 8)
删除trusted_proxies
选择完全和添加以下app.php
文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
# web / app.php/ /之前/ /……美元内核=新AppKernel (“刺激”,假);请求::setTrustedHeaderName(请求::HEADER_FORWARDED,零);美元请求=请求::createFromGlobals ();/ /……/ /后/ /……美元内核=新AppKernel (“刺激”,假);请求::setTrustedHeaderName(请求::HEADER_FORWARDED,零);请求::setTrustedProxies ([“192.0.0.1”,“10.0.0.0/8”]);美元请求=请求::createFromGlobals ();/ /……
你可以改变现在因为它还在Symfony的版本3.3之前。ob娱乐下载这样你就可以升级您的应用程序。Symfoob娱乐下载ny 3.3发布时,可以简化上述使用的第二个参数setTrustedProxies ()
方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
# web / app.php/ /在Symfony 3ob娱乐下载.2/ /……美元内核=新AppKernel (“刺激”,假);请求::setTrustedHeaderName(请求::HEADER_FORWARDED,零);请求::setTrustedProxies ([“192.0.0.1”,“10.0.0.0/8”]);美元请求=请求::createFromGlobals ();/ /……/ /在Symfony ob娱乐下载3.3之后/ /……美元内核=新AppKernel (“刺激”,假);请求::setTrustedProxies ([“192.0.0.1”,“10.0.0.0/8”),请求::HEADER_X_FORWARDED_ALL);美元请求=请求::createFromGlobals ();/ /……
发表在#ob娱乐下载
评论
帕维尔Batanov
说5月25日,2017年在12:52
如何设置不同的信任代理不同env (dev、过渡词,刺激)?硬编码IPs并不总是一个选项,配置允许设置这个参数。yml文件
冈萨洛Vilaseca
说5月25日,2017年在14:06
平台。sh动态信任代理,所以我们需要调用代理IP的一个api。
之前这种改变很容易,因为我们只需要打电话当编译容器并设置trusted_proxies配置值。
有了这个改变,我们必须调用API在前端控制器的每个请求,所以我想我们需要找到一个解决方案和缓存这些IP的某处。
之前这种改变很容易,因为我们只需要打电话当编译容器并设置trusted_proxies配置值。
有了这个改变,我们必须调用API在前端控制器的每个请求,所以我想我们需要找到一个解决方案和缓存这些IP的某处。
冈萨洛Vilaseca
说5月25日,2017年在真理
对不起,我的意思是“急剧”(CDN),而不是“Platform.sh”。
尼古拉斯Grekas
说5月25日,2017年在15:46
参数的问题是,太晚了:请求时可能已经使用FrameworkBundle配置(例如,当使用HttpCache)。
由于这是一个安全问题,我们应该严格。
不同env,只使用env var + getenv()——或部署脚本工作。
由于这是一个安全问题,我们应该严格。
不同env,只使用env var + getenv()——或部署脚本工作。
帕维尔Batanov
说5月25日,2017年在十六22
@Nicolas,我们可以使用显式的内核引导之前请求从容器参数配置代理,如果我们不使用HttpCache吗?或者有其他缺点吗?
@Georg没错。我之前你的“trusted_proxies”选项是空的,就删除它。
Javier Eguiluz is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now