2014-04-15 5 views
0

여기 내 HTML입니다 :nodejs : 대신 nodejs http server가 아닌 http http server를 사용 하시겠습니까?

<!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 

내 목표는 아파치를 사용하는 것입니다하지 nodejs HTTP Server와 같은.

+0

이 질문을보십시오 : http://stackoverflow.com/a/18604082/1500501 나는 어쨌든 (일부 포트에서) 노드 HTTP 서버를 실행하고 아파치가 요청을 일부'/chat /'컨텍스트를 해당 포트에 추가하십시오. http 모듈없이 노드 웹 서버를 실행하는 일반적인 방법에 대해서는 잘 모르겠습니다. (방법이 있다면 모든 노드에 대해 확실하게 진행됩니다). –

답변

0

리버스 프록시를 사용하는 것이 가장 좋은 방법입니다. 나는 아파치가 리버스 프록시로 구성 될 수 있다고 생각하지만, 많은 사람들은 다른 모든 것들 앞에 NGINX를 사용한다.

NGINX는 먼저 역방향 프록시이며 다른 로컬 포트로 특정 http (및 https) 요청을 프록시 처리하기 쉽기 때문에 여러 개의 다른 서버를 가질 수 있습니다 (예 : 일부 nodejs 서비스가있는 PHP 사이트 더 많은 DIRTY 작업)이 웹 사용자에게 원활하게 제공되며 모든 것이 포트 80 및 443에서 제공 될 수 있습니다.

nginx는 정적 호스트 만 있으면 기본 웹 서버에서도 작동합니다.