NodeJS 0.10.46 在 lighttpd 代理之后不再服务

NodeJS 0.10.46 not serving after lighttpd proxy anymore

今天我更新了我的 nodejs 安装(来自官方 CentOS 7 仓库)。

我以前通过 lighttpd 代理服务,没什么特别的:

proxy.server = ( "" =>
                     ( "" =>
                       (
                         "host" => "127.0.0.1",
                         "port" => 2368,
                       )
                     )
                   )

NodeJS 本身运行良好,我有两个应用程序 运行 很好(如果直接访问),lighttpd 还代理了第三个应用程序(由 Java 运行时提供),功能齐全。

问题始于 NodeJS 更新到 0.10.46(通过 yum 包管理器),我的配置没有任何改变。

Lighttpd proxy.debug 输出:

(mod_proxy.c.1158) proxy - start
(mod_proxy.c.1199) proxy - ext found
(mod_proxy.c.1333) proxy - found a host 127.0.0.1 2368
(mod_proxy.c.417) connect delayed: 11
(mod_proxy.c.1042) proxy: fdevent-out 1
(mod_proxy.c.1065) proxy - connect - delayed success
(mod_proxy.c.1030) proxy: fdevent-in 4
(mod_proxy.c.652) proxy - have to read: 0
(mod_proxy.c.1158) proxy - start
(mod_proxy.c.1199) proxy - ext found
(mod_proxy.c.1333) proxy - found a host 127.0.0.1 2368
(mod_proxy.c.417) connect delayed: 11
(mod_proxy.c.1042) proxy: fdevent-out 1
(mod_proxy.c.1065) proxy - connect - delayed success
(mod_proxy.c.1030) proxy: fdevent-in 4
(mod_proxy.c.652) proxy - have to read: 0

NodeJS 输出:

"GET / HTTP/1.0" 
"GET /favicon.ico HTTP/1.0" 200

所以请求在第一步被转发,但随后只有一个

500 - Internal Server Error

由 lighttpd 提供。

有什么想法吗?不知道我还能尝试什么。

提前致谢!

节点版本

首先,我还想指出 nodejs 0.10.x 已经非常过时了。 NodeJS 目前在 v4.5 LTS 和 v6.5 Current 上。随着 Javascript 世界的发展非常迅速,依赖发行版的软件包可能会让您陷入非常旧版本的节点。您可以使用 nodesource.com 服务为您的系统获取最新版本。例如。

curl -sL https://rpm.nodesource.com/setup_4.x | bash -
yum install -y nodejs

首先要检查的问题

除此之外,您的 NodeJS 应用程序可以在 localhost:2368 上使用吗?尝试在您的浏览器中访问它(如果 2368 未对外开放,则使用 w3m 之类的文本浏览器)。这可能就像 NodeJS 不向用户返回数据一样简单。

您的 lighttpd.conf 看起来不错,但是嵌套的深度不必要地深,而这可能无法解决您的问题尝试:

proxy.server = (
        "" => (
                (
                        "host" => "127.0.0.1",
                        "port" => "2368"
                )
        )
)

其他可能性

虽然我无法确切知道您的系统在做什么,但我认为这更有可能是节点问题而不是轻微问题。尝试在节点中编写一个简单的 http 服务器 hello world 应用程序,看看它是否可用于代理。

第一个问题的评论是正确的提示: lighttpd 版本有问题,更新到 1.4.43 是解决方案。