RHEL7: How to install a NodeJS service.
There are several ways to install NodeJS (see the Digital Ocean tutorial in the links below). Here, only the binary installation will be presented.
To install the EPEL repository, type:
# yum install -y epel-release
To install the NodeJS software, type:
# yum install -y nodejs
Create the nodejs user & group:
# adduser -r nodejs
Note: The -r option normally adds system user & group with uid/gid<1000 and doesn’t create any home directory.
Configure the permissions:
# chown -R nodejs:nodejs /opt/nodejs
Create the /etc/systemd/system/nodejs.service unit file and paste the following lines into:
[Unit] Description=My NodeJS Service After=syslog.target network.target [Service] EnvironmentFile=/etc/default/nodejs User=nodejs Group=nodejs WorkingDirectory=/opt/nodejs ExecStart=/bin/node main.js Restart=on-failure SuccessExitStatus=143 [Install] WantedBy=multi-user.target
Note1: According to this article, the NodeJS process when stopped exits with the code 143 when the default signal handler hasn’t been overriden (SuccessExitStatus=143). This is the “normal” behavior. Note2: Remember that the code is in the /opt/nodejs directory (WorkingDirectory=/opt/nodejs) and start with themain.js script (ExecStart=/bin/node main.js).** **
Create the /etc/default/nodejs environment file and paste the following line into:
Note: Your NodeJS service certainly requires other environment variables. Write them into this same file.
Start and enable at boot the NodeJS service:
# systemctl start nodejs && systemctl enable nodejs
Add a rule to the firewall:
# firewall-cmd --permanent --add-service=http # firewall-cmd --reload
The Digital Ocean website offers a tutorial on How to install Node.js on a CentOS 7 server. Andrew Voce provides a tutorial on How to protect a NodeJS service behind a Nginx reverse proxy for better security. The Nginx website provides some tips to increase NodeJS application performances, Cesar Valdez wrote an article about Profiling NodeJS applications with Linux Performance Tools.
Leave a comment