Nginx返回502错误作为反向代理

时间:2012-09-15 11:51:01

标签: php apache header nginx reverse-proxy

我的网站使用nginx作为反向代理,apache作为后端使用mod_php。有时nginx在特定URL上返回502错误(如http://example.com/ipb.html?automodule=elfchat),因为apache关闭连接。在好的情况下 - 脚本应该将我重定向到另一个页面。这是崩溃连接的文件:

define('ELFCHAT_VERSION', '4.2.1');
include_once(ELFCHAT_PATH."config.php");
include_once(ELFCHAT_PATH."settings.php");
include_once(ELFCHAT_PATH."error.php");
include_once(ELFCHAT_PATH."kernel/db.php");
include_once(ELFCHAT_PATH."kernel/sessions.php");
include_once(ELFCHAT_PATH."kernel/skinloader.php");
include_once(ELFCHAT_PATH."kernel/kernel.php");

Elfchat::Init($config, unserialize($settings));

Skin::Setskinpath("skin/".Elfchat::Settings("skin")."/");

/**
 * Код для пользовательского смена скина и языка.
 */
Elfchat::Session()->start();

if(isset($_GET['useskin']))
{
    if($_GET['useskin'] == "ichat")$skin = "ichat";
    else $skin = "elfskin";
    $_SESSION['useskin'] = $skin;
}

if(isset($_SESSION['useskin']))
{
    if($_SESSION['useskin'] == "ichat")$skin = "ichat";
    else $skin = "elfskin";
    Skin::Setskinpath("skin/".$skin."/");
}
/**
 * Конец дополнительного кода
 */
@header('Content-Type: text/html; charset=utf-8');

如果我注释掉最后一行,一切都开始有效,但是编码错误,删除注释后一切正常甚至编码都很好。一段时间后事情变得糟糕。 请帮忙,我是nginx新手。

1 个答案:

答案 0 :(得分:0)

我忘了说 - 我将升级 php版本从5.2升级到5.3,并且由于php设置是安全的,因此一些代码会中断。关于解决方案 这是令人难以置信的 - 有人写这些代码eval(base64_decode("aWYoJG5hbWUgPT0gIkVsZmV0IikkaHRtbG5hbWUgPSAiPGJpZz5FbGZldDwvYmlnPiI7")); 做这件事if($name == "Elfet")$htmlname = "<big>Elfet</big>";我用纯代码替换eval,一切正常!