2017-10-24 1 views
0

을 중지 한 후 PM2로 시작하지 내가 먼저 내가 sudo는 노드 myapp.js 그것을 실행하려고 포트 (66)앱이 실행

을 듣고 설정 응용 프로그램을 가지고있다. 올바른 URL (ip : 66)에서 액세스 할 수있었습니다. 그런 다음 앱 (Ctrl + c)을 중지하고 pm2로 시작했습니다. sudo pm2 start app.js. 상태는 온라인입니다. 그러나 동일한 URL에 액세스 할 수 없습니다.

pm2로 앱을 시작하는 동안 sudo pm2 로그를 실행하면 포트 66에 대한 EACCESS 오류가 발생합니다. 다른 사람이 앱을 실행하고 있지 않으며 콘솔을 하나만 사용하고 시작하기 전에 노드 서비스를 종료합니다. pm2.

Pm2가 전 세계적으로 설치되었습니다. 서버는 데비안 스트레칭입니다. Nodejs 버전은 8.x

정상 사용자로 로그인하고 sudo를 사용하여 앱을 실행합니다.

답변

1

리눅스 시스템에서는 일반 사용자가 1024 이하의 포트를들을 수 없습니다.이 문제를 해결하는 방법에는 여러 가지가 있습니다.

루트가 아닌 사용자가 이러한 포트를 열 수 있도록이 규칙을 변경할 수 있습니다. 하지만이 보안 risc이며 권장되지 않습니다. 그래서 나는이 해결책에 대한 링크를 추가하지 않을 것이다.

또한 1024보다 큰 포트를 청취 한 다음 방화벽에서 전달 규칙을 사용하여 포트 66을 열린 포트로 라우팅 할 수 있습니다. https://www.systutorials.com/816/port-forwarding-using-iptables/

내 제안은 1024보다 큰 포트를 듣고 nginx와 같은 역방향 프록시를 사용하여 해당 서버에서 실행중인 앱을 라우팅하는 것이 좋습니다. http://pm2.keymetrics.io/docs/tutorials/pm2-nginx-production-setup

+0

감사합니다. 훌륭한 답변이었습니다. 내가이 질문을하는 유일한 사람이 아니라는 것을 알게되었습니다. (저는 올바른 방식으로 인터넷 검색을하지 않았기 때문에 대답을 찾을 수 없었습니다). 어쨌든 당신의 팁은 매우 유용합니다. –

관련 문제