【问题标题】:How to access to symfony Dev environnement behind varnish?如何访问 varnish 后面的 symfony 开发环境?
【发布时间】:2015-02-08 12:29:03
【问题描述】:

在apache2前面安装varnish后,我无法访问symfony2项目的dev环境(从localhost连接,所以在安装varnish之前就可以了)。

我收到 symfony2 拒绝访问消息“您无权访问此文件。请查看 app_dev.php 了解更多信息。”

查看 app_dev.php 文件时:

if (isset($_SERVER['HTTP_CLIENT_IP'])
    || isset($_SERVER['HTTP_X_FORWARDED_FOR'])
    || !(in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', 'fe80::1', '::1')) || php_sapi_name() === 'cli-server')
) {
    header('HTTP/1.0 403 Forbidden');
    exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
}

调试问题后发现$_SERVER['HTTP_CLIENT_IP']为NULL。

如何解决这个问题?

谢谢。


注意:我使用的是 ubuntu 14.04 + apache2.4 + varnish 3 + Symfony2.4

【问题讨论】:

    标签: symfony varnish apache2.4


    【解决方案1】:

    如果出现以下任一情况,该行将返回 403:

    • HTTP_CLIENT_IP 标头存在
    • HTTP_X_FORWARDED_FOR 标头存在
    • $_SERVER['REMOTE_ADDR'] 不是 '127.0.0.1'、'fe80::1'、'::1' 之一

    您可能正在 varnish 中设置 HTTP_X_FORWARDED_FOR 标头,或者 varnish 正在为您设置它,具体取决于 varnish 版本。取消设置或重写条件,这是一项安全措施,因此请采取相应措施。

    这里有一些有趣的信息:http://symfony.com/doc/current/cookbook/cache/varnish.html

    【讨论】:

    • Varnish 设置了“HTTP_X_FORWARDED_FOR”,所以我编辑了 app_dev 文件,现在它可以工作了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多