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

时间:2016-06-02 11:22:06

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

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

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

1 个答案:

答案 0 :(得分:0)

  

无需通过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内容......)