【问题标题】:Run node.js server file using apache default port使用 apache 默认端口运行 node.js 服务器文件
【发布时间】:2016-10-02 02:32:20
【问题描述】:

我有这个 node.js 服务器文件:

var app = require('http').createServer(handler),
io = require('socket.io').listen(app),
fs = require('fs'),

app.listen(80);

function handler (req,res){

    fs.readFile("/client.html"), function(err, data) {  
        if (err) {

           console.log(err);
           res.writeHead(500);
           return res.end('Error loading client');
        }

        res.writeHead(200);
        res.end(data);
    });
}

有没有办法让这个 node.js 文件在客户端尝试连接时通过 apache 默认端口号自动运行,而无需通过 cmd 运行它?

【问题讨论】:

  • 如果我理解正确的话,我认为没有办法。

标签: node.js apache client-server wamp wampserver


【解决方案1】:

无需通过 cmd 运行它

简短的回答:不完全是。将此 node.js 文件视为创建与 Apache 相当的服务器。

脚本创建一个服务器.createServer(),然后告诉它监听端口80 .listen(80)。

由于 socket.io 绑定到此节点服务器(并且不能仅插入到 Apache),您必须执行脚本(通过 cmd 运行)才能使用它。

话虽如此: 我确信可以从节点服务器中创建一个守护程序(后台程序);从而在系统启动时自动启动它。如果您随后指定在端口 xxxx 上运行它,您可以告诉 Apache 将此端口映射到其自己的本地空间(其文件夹)。在本地机器上,这条指令看起来像这样:ProxyPass /app http://127.0.0.1:xxxx/ 一台机器上将运行两台服务器;而 Apache 的 http://127.0.0.1/app 会重定向到节点服务器(监听 xxxx)。

我不建议现在就去那个兔子洞。要开始在 Windows 上享受 socket.io 的乐趣,只需使用以下命令创建一个批处理文件来运行您的服务器:node [path/to/your/server_file.js] 以便于使用。展开您的节点脚本。并停止使用 Apache。 (Express 是一个很好的模块,可以将节点用于 Web 内容...)

【讨论】:

    猜你喜欢
    • 2014-07-01
    • 2011-04-19
    • 2014-04-24
    • 2013-09-16
    • 2017-03-22
    • 2013-10-18
    • 1970-01-01
    • 2018-01-18
    • 1970-01-01
    相关资源
    最近更新 更多