2012-11-22 5 views
0

aws에는 세 개의 인스턴스가 있습니다. 하나는 프론트 엔드 서버 인 nginx에 대한 것이고 두 개의 백엔드 노드는 intensances입니다.nginx 및 노드를 업스트림으로 설정 하시겠습니까?

임 이러한 Node.js를 인스턴스에 상류하기의 nginx 서버를 설정하려고 :

app.listen(8124, "127.0.0.1"); 
console.log("listening on 8124"); 

: 내 노드 1 서버에서

upstream node_servers { 
     server private_ip:8124 weight=10 max_fails=3; // node server 1 private_ip:port 
     server private_ip:8124 weight=10 max_fails=3; // node server 2 private_ip:port 
} 
server { 
    listen private_ip:80;  // nginx server private ip:port 
    root /home/ubuntu/project/; 
    server_name public_ip.eu-west-1.compute.amazonaws.com; // nginx public DNS 
    location/{ 

       try_files $uri $uri/ /index.html; 
       proxy_pass http://node_servers/; 

    } 
} 

, 노드 2 서버 인스턴스는 코드 app.js 내가 nginx 서버 공개 도메인 이름에 가서 아무것도 실제로, 그냥 영원히 요청을 보내는로드 .....

+1

: 당신은 당신의 프런트 엔드 서버에 로그인 시도해야한다 노드 인스턴스를 컬링하려면 : curl http : // IP : 8124', 이것은 무언가를 리턴해야합니다. iptables를 확인하지 않거나 80 또는 8080과 같은 표준 http 포트를 사용하십시오. 반품을 받으려면 먼저 한 서버에만 업스트림을 시도하십시오. 또한 nginx 로그를 확인하고 유용한 정보가 있는지 확인하십시오. – topek

+0

컬 : (52) 서버에서 빈 회신,이게 내가 무엇을 얻나요? – unknown

+0

노드 포트를 80으로 설정해 보셨습니까? 방화벽이 요청을 차단합니까? 노드 서버가 여전히 localhost (127.0.0.1)에 바인딩되어 있습니까? – topek

답변

1

노드 코드에서 127.0.0.1에서 루프백 인터페이스에서 듣고있다 (r을 단지 로컬 호스트에서 equests는) :

app.listen(8124, "127.0.0.1"); 

당신은 특정 개인 IP 또는 0.0.0.0에서 수신 할 수 있습니다

당신은 당신의 문제를 찾아야
app.listen(8124, "0.0.0.0"); 
+0

또한 개인 주소에서 수신하도록 설정할 수 있으므로 nginx 또는 로컬 주소의 연결 만 허용됩니다. – jeremy

+0

이 문제를 해결하면 페이지에 504 오류가 표시됩니다. – unknown