systemd: WebSocket/실시간 서버용 Node 유닛 팁

연결이 많은 서버에서 NOFILE, graceful shutdown, 재시작 정책을 포함한 systemd 예시

분야: DevOps/인프라 systemdnodejswebsocketops

WebSocket/실시간 서버는 “오래 유지되는 연결”이 많아, 기본값으로는 파일 디스크립터(NOFILE) 한도나 종료 타임아웃이 발목을 잡을 수 있습니다.

관련 템플릿: systemd: Node 서비스 유닛 템플릿 (EnvironmentFile 포함)

myrealtime.service 예시

[Unit]
Description=myrealtime (Node WebSocket)
After=network.target

[Service]
Type=simple
User=myrealtime
WorkingDirectory=/srv/myrealtime/current
EnvironmentFile=/etc/myrealtime/myrealtime.env

ExecStart=/usr/bin/node server.js
Restart=always
RestartSec=2

# 연결이 많은 서비스에서 자주 필요
LimitNOFILE=65535

# graceful shutdown을 위해 여유를 준다
TimeoutStopSec=20

[Install]
WantedBy=multi-user.target

운영 체크리스트

같은 분야의 템플릿