nodejs-prod.reality.internal
nodejs-prod.reality.internal je produkcni server pro aplikaci bezici pod nodejs (vyvoj SiteONE). Maji ssh pristup pod uzivatelem app-reality (omezeno na fw na jejich IP), v jehoz home (/var/www/app-reality) je aplikace umistena.
Za SiteOne? můžete v případě hlášení chyb apod. kontaktovat mě na jakub.rozsypal v(e) siteone.cz a +420605214810
Aplikace se managuje pomoci npm baliku pm2, napr (pod tim uzivatelem):
[app-reality@nodejs-prod.reality.internal ~]$ pm2 list ┌─────────────┬────┬──────┬─────┬────────┬─────────┬────────┬─────────────┬──────────┐ │ App name │ id │ mode │ pid │ status │ restart │ uptime │ memory │ watching │ ├─────────────┼────┼──────┼─────┼────────┼─────────┼────────┼─────────────┼──────────┤ │ app-reality │ 0 │ fork │ 373 │ online │ 0 │ 42h │ 57.227 MB │ disabled │ └─────────────┴────┴──────┴─────┴────────┴─────────┴────────┴─────────────┴──────────┘ Dale pripadne: cd current /usr/local/node-6.2.1/lib/node_modules/pm2/bin/pm2 startOrRestart config/pm2.json /usr/local/node-6.2.1/lib/node_modules/pm2/bin/pm2 kill
Nicmene pro standartni ovladani aplikace z naseho pohledu existuje systemd unita "pm2", ktera bezne zastavuje/spousti sluzbu po startu. (/etc/systemd/system/pm2.service):
[Unit] Description=PM2 next gen process manager for Node.js After=network.target remote-fs.target [Service] Environment="PATH=/usr/local/node-6.2.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" Type=forking User=app-reality WorkingDirectory=/var/www/app-reality/current ExecStart=/usr/local/node-6.2.1/lib/node_modules/pm2/bin/pm2 startOrRestart config/pm2.json --env production ExecReload=/usr/local/node-6.2.1/lib/node_modules/pm2/bin/pm2 reload all #ExecStop=/usr/local/node-6.2.1/lib/node_modules/pm2/bin/pm2 dump #ExecStop=/usr/local/node-6.2.1/lib/node_modules/pm2/bin/pm2 delete all ExecStop=/usr/local/node-6.2.1/lib/node_modules/pm2/bin/pm2 kill [Install] WantedBy=multi-user.target
Verze nodejs:
Nodejs je instalovany rozbalenim distribuovaneho (nikoliv distribucniho) tgz do /usr/local pod svoji verzi. V pripade zmeny verze je potreba prepsat cesty v /etc/systemd/system/pm2.service, dale zmenit path v /etc/profile.d/nodejs.sh a doinstaloval globalni npm knihovny (aktualne jen pm2), protoze jsou instalovane v adresari daneho nodejs v /usr/local/node-xxx/node_modules:
npm i -g pm2
Ostatni npm moduly maji instalovane lokalne v adresarich aplikace a delaji si to sami.
Proxovani
Aplikace bezi zvenci pod URL https://m.reality.cz, coz je proxovane na proxy jako ostatni weby. Domluveny produkcni port je 8888 na strane nodejs.