如何配置Symfony在负载均衡器ob娱乐下载或反向代理后工作
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 2.5,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
如何配置Symfony在负载均衡器ob娱乐下载或反向代理后工作
当您部署应用程序时,您可能处于负载均衡器(例如AWS弹性负载均衡器)或反向代理(例如Varnish for缓存).
在大多数情况下,这不会给Symfony带来任何问题。ob娱乐下载但是,当请求通过代理时,某些请求信息将使用特殊的方式发送X-Forwarded - *
头。例如,不读REMOTE_ADDR
头(现在将是反向代理的IP地址),用户的真实IP将存储在一个X-Forwarded-For
头。
如果您没有配置Symfony来查找这些头信息,ob娱乐下载那么您将得到关于客户机的IP地址、客户机是否通过HTTPS连接、客户机的端口和请求的主机名的错误信息。
解决方案:trusted_proxies
这不是问题,但是你做需要告诉Symfony这正ob娱乐下载在发生,哪些反向代理IP地址将做这种类型的事情:
- YAML
- XML
- PHP
1 2 3 4
# app / config / config.yml#……框架:trusted_proxies:[192.0.0.1,10.0.0.0/ 8)
在本例中,您说的是反向代理(或多个代理)具有IP地址192.0.0.1
或匹配使用CIDR表示法的IP地址范围10.0.0.0/8
.有关详细信息,请参见framework.trusted_proxies选择。
就是这样!ob娱乐下载Symfony现在会寻找正确的X-Forwarded - *
头来获取诸如客户端的IP地址、主机、端口以及请求是否使用HTTPS等信息。
但是如果我的反向代理的IP不断变化怎么办!
一些反向代理(如Amazon的弹性负载均衡器)没有静态IP地址,甚至没有可以使用CIDR标记的范围。在这种情况下,您需要—非常仔细地——信任所有代理。
- 将web服务器配置为不响应来自任何负载均衡器以外的客户端。对于AWS,这可以通过安全组.
一旦您保证了流量将只来自您信任的反向代理,将Symfony配置为ob娱乐下载总是信任传入的请求。这是在你的前置控制器内部完成的:
1 2 3 4 5 6 7
/ /网络/ app.php/ /……请求::setTrustedProxies (数组($请求->服务器->get (“REMOTE_ADDR”)));$响应=$内核->处理($请求);/ /……
就是这样!防止来自所有不可信来源的流量是至关重要的。如果你允许外部流量,他们可以“欺骗”他们的真实IP地址和其他信息。
我的反向代理使用非标准(不是X-Forwarded)报头
大多数反向代理存储特定的X-Forwarded - *
头。但如果反向代理使用非标准报头名称,则可以配置这些名称(请参阅“信任代理”)。这样做的代码将需要生活在你的前端控制器(例如。web / app.php
).