Node를 사용하여 .js 파일을 실행하여 RHEL에서 Nodejs 서버를 실행하려고 하는데 바인딩할 수 없는 문제가 발생했습니다.포트 80, 더 높은 포트로 변경하면 문제가 해결되었지만 외부에서 액세스할 수 없어 들어오는 요청이 차단되었다고 가정하게 되었습니다 firewalld
. 특정 포트를 잠금 해제하는 것은 우아한 해결책처럼 보이지 않았기 때문에 등록할 수 있는 시스템 서비스로 실행되도록 NodeJS 서버를 설정하는 방법을 살펴보았습니다 firewalld
.
서비스를 실행하기 위해 시스템 계정으로 webserver.service
파일과 사용자를 생성했는데 , 실제로 실행해 보니 문제가 발생했습니다.httpserver
systemctl daemon-reload
systemctl start webserver
Failed to start webserver.service: Unit webserver.service not found.
SELinux와 관련된 다른 문제도 본 적이 있지만 setenforce permissive
전후 chcon system_u:object_r:systemd_unit_file_t:s0
모두 시도했지만 webserver.service
성공하지 못했습니다.
내용은 다음과 같습니다 /etc/systemd/user/webserver.service
.
[Unit]
Description=test service for server
After=network.target
[Service]
Type=simple
User=httpserver
ExecStart=/usr/bin/node /home/user/ ... /index.js
Restart=on-failure
[Install]
WantedBy=multi-user.target