【发布时间】:2017-09-30 12:16:15
【问题描述】:
我正在构建一个使用 npm 进行开发的简单网站,它由支持 php 的提供商托管。
使用 php 的唯一功能是联系表单发送电子邮件。剩下的就是简单的 html 和 javascript。
我在开发中使用一个简单的 php 服务器,从 php -S localhost:8000 开始测试一个简单的 php 电子邮件脚本,并在开发中再次将 email.php 的代理请求反向到本地的这个 php 服务器。
Node 应用程序在端口 3000 上,php 服务器在端口 8000 上。问题是当请求通过 localhost:3000/email.php 时,我收到以下快速服务器配置的连接被拒绝错误:
#!/usr/bin/env node
var express = require('express');
var app = express(),
request= require('request'),
port = +(process.env.PORT || 3000);
app.set('case sensitive routing', false);
app.post( '/email.php', function( req, res ){
req.pipe( request({
url: 'http://localhost:8000/email.php',
qs: req.query,
method: req.method
}, function(error){
if (error.code === 'ECONNREFUSED'){
console.error('Refused connection');
} else {
throw error;
}
})).pipe( res );
});
// other request handlers here
app.listen(port, function() {
console.log('listening');
});
Php 服务器肯定已经启动并为端口 8000 上的所有页面提供服务,我可以使用浏览器浏览这些页面。我用 curl 对其进行了测试,当使用 curl 直接发布到 localhost:8000 时,它似乎可以很好地处理请求。
不知道为什么会出现这个错误,摸不着头脑,想不出任何原因。
非常感谢您的帮助。
【问题讨论】:
-
您的快递服务器是否在同一台服务器上运行?
标签: javascript php node.js express reverse-proxy