我继承了一个项目,该项目涉及在 node.js 上运行的管理员应用程序与在 apache 上运行的类似 REST 的 api 对话。我对 [LM]AMP 非常熟悉,但我是 node.js 的新手。
我正在尝试在我的本地机器上设置整个环境,即 MAMP。
当我使用原始设置(在名为“build”的目录下的节点配置文件中)时,应用程序主机指向真实服务器,node.js 站点正常运行:
var options = underscore.defaults(options, {
...
port: 8000,
proxy_app: true,
app_host: 'www.example.com',
app_port: 80
});
在浏览器中,将http://localhost:8000/app/do/something
返回一些有效的 json。
(我在这里的理解是有限的,但我相信节点正在将此请求代理到运行应用程序的 apache 服务器)。
但是,当我将它指向我的本地服务器时......
var options = underscore.defaults(options, {
...
port: 8000,
proxy_app: true,
app_host: 'www.mylocalexample.com',
app_port: 80
});
现在,http://localhost:8000/app/do/something
返回 404 Not Found。
所以这个 node.js 配置文件的唯一区别是主机,它是有效的(如果我直接在我的本地主机上调用应用程序 api 它可以工作,即我得到有效的 json)。由于某种原因,node.js 代理的请求似乎没有发送到我的 MAMP 服务器,或者确实被发送但 MAMP 拒绝了它。apache 日志中没有错误。
有任何想法吗?Firebug 也没有告诉我太多用处,所以我不确定如何进一步调试。我的直觉说这一定是我 MAMP 的 Apache 上的一些设置,但我不确定它可能是什么。