Node.js가 http 서버 (또는 웹 소켓 서버 또는 그 문제에 대한 서버)로 작동하도록 NginX를 필요로하지 않는다는 점을 고려하면 Node.js 대신 NginX를 사용하는 방법에 대해 읽고 계속합니다. 그럴만 한 이유가있다.NginX를 Node.js에 사용하면 어떤 이점이 있습니까?
답변
여기 http://developer.yahoo.com/yui/theater/video.php?v=dahl-node Node.js 저자는 Node.js가 아직 개발 중이며 NginX가 단순히 숨기는 보안 문제가있을 수 있다고 말한다.
한편 트래픽이 많은 경우 NginX는 실행중인 많은 Node.js 서버간에 작업을 분할 할 수 있습니다.
오, 감사합니다! 마지막으로 만족스러운 대답입니다. 더블 감사 링크 – Purefan
하지만 준비하십시오. nginx는 백엔드와 통신하는 동안 http 1.1을 지원하지 않으므로 nginx 뒤에 노드를두면 연결 유지 또는 웹 소켓과 같은 기능이 작동하지 않습니다.
UPD : 최신 정보는 nginx 1.2.0 - socket.io - HTTP/1.1 - Proxy websocket connections을 참조하십시오.
나는 이해하지 못한다. – rizidoro
그가 의미하는 바는 NginX가 클라이언트에게 Http 1.1에 연결할 수 있지만 proxyeded 서버에는 연결할 수 없다는 것입니다. 예를 들어 Socket.io를 구현하는 NodeJS 응용 프로그램이 있고 NginX를 통해 해당 응용 프로그램에 연결하면 간단하게 웹 소켓 용으로 작동하지 않습니다. – Purefan
Nginx는 [1.2.0 버전 이후로 HTTP 1.1을 지원합니다] (http://wiki.nginx.org/Main). 답변을 업데이트 할 수 있습니까? –
이전 답변뿐 아니라 Node.js 앞에서 nginx를 사용하는 또 다른 실질적인 이유가 있습니다. 이는 서버에서 둘 이상의 노드 응용 프로그램을 실행하려는 경우 일 수 있습니다.
노드 응용 프로그램이 포트 80에서 수신 대기중인 경우 해당 응용 프로그램으로 제한됩니다. nginx가 포트 80에서 수신 대기중인 경우 다른 포트에서 실행중인 여러 노드 응용 프로그램에 요청을 프록시 할 수 있습니다.
또한 TLS/SSL/HTTPS를 Nginx에 위임하는 것이 편리합니다. 노드에서 직접 TLS를 수행하는 것은 가능하지만 추가 작업이고 오류가 발생하기 쉽습니다. Nginx (또는 다른 프록시)가 앱 앞에 있으면 걱정할 필요가 없으며 tools to help you securely configure it이 있습니다.
나는 이것이 ServerFault에 더 적합하다고 생각합니다. – mbq
아니오 serverfault가 아님 – mamu
아니요, 논쟁하지 않겠습니다 ;-) – mbq