运行 node.js 服务器文件使用 apache 默认端口

Run node.js server file using apache default port

我有这个 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);
    });
}

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

without having to run it through the cmd

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

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

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

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

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