我在 Heroku 上运行 symfony2 应用程序,我需要获取可信代理(IP(s)) 我的应用程序将在此处运行,如下所述:http://symfony.com/blog/new-in-symfony-2-3-use-sub-networks-to-configure-trusted-proxies
有一个提及Dyno可以在Dyno manifold 中得到的IP:
运行多个dynos时,应用程序分布在多个节点上 由dyno经理。访问您的应用程序总是通过 路由器。
因此,dynos没有静态IP地址。虽然你永远不会 直接连接到dyno,可以发出传出 来自dyno的请求。但是,您可以依靠dyno的IP地址 在不同的地方重新开始变化。
框架实际上有一些选项,如:
framework:
trust_proxy_headers: true
但这很快就会被弃用......
谢谢! :)
答案 0 :(得分:4)
您可以在前端控制器中添加一个信任传入IP的呼叫(因为到达服务器的唯一方法是通过Heroku路由层):
Request::setTrustedProxies(array($_SERVER['REMOTE_ADDR']));
答案 1 :(得分:0)
根据这些Heroku instructions for Symfony和Heroku headers list,我们可以看到Symfony使用并且可以从Heroku信任的唯一转发标头是X-Forwarded-For
,X-Forwarded-Proto
和{ {1}}。其他标头不可信任。
我会推荐以下内容:
X-Forwarded-Port
答案 2 :(得分:-2)
嗯,在Heroku上,在dynos上运行的应用只能通过路由层/代理访问,所以你应该很好地相信一切。此外,代理对您的应用程序的请求的路由器的IP也是未知的。
Request::setTrustedProxies(array('0.0.0.0/0'));