Я новичок в nodejs и devops.Я разработал приложение nodejs & express.Положи это на github.Затем развернул его на сервере cenos.Он был доступен на порту 3000. Затем мои следующие две задачи состояли в том, чтобы убедиться, что он был доступен на порту 80 и доступен при перезапуске сервера.
Чтобы убедиться, что он был доступен на порту 80, я последовал за вопросом здесь и сделал
`sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000`
Затем, чтобы запустить его при перезапуске сервера, я попробовал PM2, как указано здесь
Но я получаю следующее иприложение не запускается при перезапуске приложения.
[root@izp0w38zlt3vpnedj7wlznz ExpressAppfmab]# pm2 start app.js
[PM2] Starting /root/ExpressAppfmab/ExpressAppfmab/app.js in fork_mode (1 instance)
[PM2] Done.
┌──────┬────┬───────┬────────┬────────┬─────┬────────┬───────────┐
│ Name │ id │ mode │ status │ ↺ │ cpu │ memory │
├──────┼────┼───────┼────────┼────────┼─────┼────────┼───────────┤
│ app │ 0 │ 0.0.0 │ fork │ online │ 0 │ 0% │ 19.9 MB │
└──────┴────┴───────┴────────┴────────┴─────┴────────┴───────────┘
Use `pm2 show <id|name>` to get more details about an app
[root@izp0w38zlt3vpnedj7wlznz ExpressAppfmab]# sudo pm2 startup systemd
[PM2] Init System found: systemd
Platform systemd
Template
[Unit]
Description=PM2 process manager
Documentation=https://pm2.keymetrics.io/
After=network.target
[Service]
Type=forking
User=root
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Environment=PATH=/usr/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
Environment=PM2_HOME=/root/.pm2
PIDFile=/root/.pm2/pm2.pid
ExecStart=/usr/lib/node_modules/pm2/bin/pm2 resurrect
ExecReload=/usr/lib/node_modules/pm2/bin/pm2 reload all
ExecStop=/usr/lib/node_modules/pm2/bin/pm2 kill
[Install]
WantedBy=multi-user.target
Target path
/etc/systemd/system/pm2-root.service
Command list
[ 'systemctl enable pm2-root' ]
[PM2] Writing init configuration in /etc/systemd/system/pm2-root.service
[PM2] Making script booting at startup...
[PM2] [-] Executing: systemctl enable pm2-root...
[PM2] [v] Command successfully executed.
+---------------------------------------+
[PM2] Freeze a process list on reboot via:
$ pm2 save
[PM2] Remove init script via:
$ pm2 unstartup systemd
[root@izp0w38zlt3vpnedj7wlznz ExpressAppfmab]#
Любая помощь искренне приветствуется.
Спасибо