nodejs:如何使用apache http服务器而不是nodejs http服务器?

时间:2014-04-15 21:08:55

标签: node.js webrtc

这是我的HTML:

<!DOCTYPE html>
<html>
<head>
<link rel='stylesheet' href='css/main.css' />
</head>
<body>
<div id='container'>    
    <div id='videos'>
        <video id="localVideo" autoplay="true" ></video>
        <video id="remoteVideo" autoplay="true" ></video>
    </div>
</div>      
<script src='http://127.0.0.1:2013/socket.io/socket.io.js'></script>
<script src='adapter.js'></script>
<script src='main.js'></script>
</body>
</html>

这是我的nodejs脚本:

var static = require('node-static');
var http = require('http');
var file = new(static.Server)();
var app = http.createServer(function (req, res) {
  file.serve(req, res);
}).listen(2013);

var io = require('socket.io').listen(app);
io.sockets.on('connection', function (socket){
    socket.on('message', function (message) {
        socket.broadcast.emit('message', message);
    });

    socket.on('create or join', function (room) {
        var numClients = io.sockets.clients(room).length;
        if (numClients == 0){
            socket.join(room);
            socket.emit('created', room);
        } else if (numClients == 1) {
            io.sockets.in(room).emit('join', room);
            socket.join(room);
            socket.emit('joined', room);
        } else { 
            socket.emit('full', room);
        }    
    });
});

当我使用以下方式访问我的应用程序时

http://127.0.0.1:2013/:有效!

http://127.0.0.1/chat/:给mes一个错误:

GET http://127.0.0.1/socket.io/1/?t=1397595935052 404 (Not Found) socket.io.js:1659

我的目标是使用Apache而不是nodejs作为http服务器。

1 个答案:

答案 0 :(得分:0)

应该解决您的问题的一个可以说是更好的方法是使用反向代理。我认为Apache可以配置为反向代理,但很多人只是在其他所有方面使用NGINX。

NGINX首先是一个反向代理,可以轻松地将特定的http(和https)请求(通过它们的url)代理到其他本地端口,因此您可以拥有多个不同的服务器(例如,带有一些nodejs服务的php站点以获得更多DIRTY任务)无缝地呈现给网络用户,一切都可以进入端口80和443。

如果你只需要一个静态主机,nginx也可以运行一个基本的Web服务器。