2016-11-14 2 views
-1

노드가 실행되는 랩톱이 있고 쿼드 코어 프로세서가있는 우분투 서버가 있습니다.여러 웹 사이트가있는 노드 서버와 각 사이트마다 자체 스레드가 있습니다

이 서버에는 2-3 개의 사이트에 대한 계획이 있습니다.이 관리자는 정말 좋은 관리자가 아니므로 처음부터 시작하여 하이퍼 바이저를 실행하고 싶지 않으므로이 사이트를 만드는 데 도움이 필요합니다. 노드 호스트 3 사이트를 갖고 각각의 프로세서를 자체 스레드에서 실행하는 방법이 있습니까? 나는 노드가 단일 쓰레드이고 실제로 퍼포먼스를 위해 이것을 수행 할 필요가 없다는 것을 이해한다. (왜냐하면 개발을 위해서이기 때문에) 노드에서 일을 할 때의 연습과 같이 멋지다. 데이타베이스를위한 두 번째 노트북이 전부 있으므로 Im 걱정하지 않아도됩니다.

은 그래서 당신은 3 개의 다른 응용 프로그램을 실행하면 모든 다른 스레드에 우분투 서버의 하나 개의 인스턴스에 3 개 사이트 .....

+0

포트를 신경 쓰지 않는다면 다른 포트를 사용하는 노드 앱 인스턴스 세 개를 실행할 수 있습니다. –

+0

그렇다면 서버에서 노드 3 번을 어떻게 시작하나요? 노드를 시작하면 하나의 응용 프로그램 만 가져 오기 때문에. like "sudo nodejs app.js" – illcrx

답변

1

당신이 성취하고자하는 것은 완전히 명확하지 않습니다.

  1. 은, 세 개의 Node.js를 서버를 만들고 각 자신의 포트에 듣고 그들은 서로 다른 독립적으로 자신의 Node.js를 프로세스를 실행한다 : 여기에 몇 가지 시나리오입니다. 그런 다음 각 클라이언트를 해당 포트에 연결하십시오.

  2. 각각 자신의 포트를 수신하는 node.js 서버를 세 개 만들고 각각 다른 노드와 별도로 자체 node.js 프로세스를 실행합니다. 세 개의 웹 서버 앞에서 NGINX를 프록시로 사용하면 세 개의 도메인 각각에서 포트 80을 통해 NGINX로 모든 요청을 적절한 node.js 웹 서버로 보낼 수 있습니다. 이 방법을 사용하면 NGINX를 사용하여 3 개의 웹 서버가 모두 기본 포트 80 (또는 443)에서 실행 중일 수 있으며 NGINX가이를 분리하여 적절한 웹 서버 프로세스로 전달합니다.

  3. 세 도메인 모두에 대한 요청을 수신하는 자체 master node.js 프로세스를 생성하고 호스트 헤더가 요청이 실제로 전달 된 도메인을 확인한 다음 해당 요청을 해당 하위 프로세스로 전달합니다. 이는 node.js에서 클러스터링이 작동하는 방식과 유사하지만 각 하위 프로세스는 각기 다른 웹 서버가됩니다. 개인적으로, 위의 옵션 2에서 설명한대로 NGINX에서 미리 빌드 된 기능을 사용하면 좋겠지 만 NGINX를 실행하고 싶지 않으면 직접 코딩 할 수 있습니다.

  4. NGINX 대신 ISP에서 들어오는 연결을 올바른 서버 프로세스로 지정해야하는 일종의 부하 분산 장치를 사용하십시오.

0

은 즉. 사이트는 서로 다른 포트에서 실행된다고 가정하고 서버에서 서로 다른 프로세스로 실행됩니다. 동시에 실행하는 데 문제가 없어야합니다. 하나의 프로세스에 적용되는 단일 스레드 인 노드를 참조 할 때 각 프로세스마다 자체 이벤트 루프가 실행됩니다.

+0

그렇다면 어떻게 서버에서 3 번 노드를 시작할 수 있습니까? 노드를 시작하면 하나의 응용 프로그램 만 가져 오기 때문에. "sudo nodejs app.js"처럼 – illcrx

관련 문제