2017-11-22 5 views
-1

cPanel을 사용하는 공유 호스트에서 Apache 서버를 실행합니다. 서버에 node.js를 성공적으로 설치했지만 문제는 내 호스트가 아웃 바운드 포트만 열 수 있고 브라우저 sooo를 통해 포트에 액세스 할 수 있어야한다는 것입니다. 포트를 사용할 필요가 없는지 궁금합니다.node.js 애플리케이션이 포트에서 수신 대기해야합니까?

const express = require('express'); 
const req = require('request') 

var app = express(); 
var port = process.env.PORT || 8016; 

var server = app.listen(port,() => { 
    console.log('Server listening on ' + port); 
}); 

내가 예를 들어 응용 프로그램이 포트를 필요로하지 만들 수 있으며 도메인 대신에 example.com과 같은 포트 떨어져 간다 :처럼 예를 들어 여기 내 코드는? 내가 app.route()을 추가하려는 것처럼 public_html에서 할 수 있을까요?

+0

웹 서비스는 포트없이 액세스 할 수 없습니다. 브라우저에 입력 한 도메인 이름은 복잡성을 숨 깁니다. http://example.com은 포트 80으로 이동합니다. https://example.com은 포트 443으로 이동합니다.Apache httpd를 [노드 응용 프로그램에 대한 프록시 요청]으로 구성 할 수 있어야합니다 (https://serverfault.com/questions/497856/using-an-apache-virtualhost-to-access-a-node-js-instance- on-the-same-server) – Matt

답변

1

모든 서버 프로세스는 포트에서 수신 대기해야합니다.

http://www.example.com과 같은 URL이 표시되면 암시 된 포트가 있습니다. 프로토콜이 http이고 URL에 포트가없는 경우 브라우저는 자동으로 포트 80을 사용합니다. 따라서 URL이 서버에 도달하면 example.com의 서버가 포트 80에서 수신 대기하기 때문입니다. https는 443

내가 예를 들어 응용 프로그램이 포트를 필요로하지 만들 수이며 example.com과 같은 포트 대신 도메인 떨어져 간다 애플리케이션 서버가 수신 할 필요가

번호 포트에. 위에서 말한 것처럼 포트가 해당 프로토콜의 "기본값"이고 URL을 처리하는 사람이 자동으로 올바른 포트를 사용하면 URL에서 포트를 벗어날 수 있습니다. 그러나 서버는 여전히 적절한 포트에서 수신 중이어야합니다.

마찬가지로 public.html에서 app.route()를 추가 할 수 있습니까?

나는 이것이 무엇을 의미하는지 모른다. HTML 파일에 경로를 추가하지 않을 것입니다. 경로를 추가하는 것은 서버의 JS 파일에서 수행됩니다.

저는 cPanel을 사용하는 공유 호스트에서 Apache 서버를 실행합니다.

일반적으로 해당 유형의 호스팅에서 들어오는 연결을 직접 처리하는 node.js 서버는 실행할 수 없습니다. 들어오는 연결 경로가있는 장기 실행 서버 프로세스를 지원하는 호스팅이 필요합니다. 귀하의 제공 업체는 (다른 서비스 등급에서) 또는 다른 제공 업체가 필요할 수도 있음을 제공 할 수 있습니다.

Apache를 프록시로 사용하여 node.js 서버로 들어오는 연결을 라우팅하는 방법이 있지만 일반적으로 공유 호스팅 환경에서 직접 구성 할 수있는 방법은 아닙니다. 보통 더 높은 수준의 호스팅 서비스가 필요합니다.

Apache에서 일괄 실행 환경으로 node.js를 사용할 수도 있지만 (PHP가 Apache에서 실행되는 방식과 다소 비슷 함) node.js 서버를 실행하지 않습니다. 그것은 Apache에서 특정 경로에 도달 할 때마다 node.js 스크립트를 처음부터 실행하는 것입니다 (따라서 원하는 경로 나 묻지 않은 경로가 될 수 있습니다).

유용한 정보는 Running Node.js in apache?입니다.

+0

@CraigMitchell - 호스팅을 통해 도메인에 들어오는 들어오는 포트 80 요청을 node.js 서버로 리디렉션합니까? 그것이 당신이 필요로하는 것입니다. 그리고, 귀하의 호스팅은 오래 실행되는 node.js 서버를 허용합니까? – jfriend00

+0

'EACCES 0.0.0.0 : 443'라고했는데 서버가 0.0.0.0이라고 말하는 것입니까? 이 오류가 발생하는 이유는 무엇입니까? –

+0

@CraigMitchell - [Google "EACCES nodejs. server"] (https://stackoverflow.com/questions/9164915/node-js-eacces-error-when-listening-on-most-ports)를 시도 했습니까? 그렇게했다면 1024 이하의 포트에서 서버를 시작하는 데 높은 권한이 필요하다는 것을 빨리 알 수 있습니다. 적절한 권한이없는 경우 얻을 수있는 일반적인 오류입니다. – jfriend00