GNU/Linux >> Znalost Linux >  >> Linux

Jak nastavit Apache jako frontend proxy server pro Node.js CentOS 8

Node.js je open-source, multiplatformní, běhové prostředí JavaScriptu, které lze použít ke spouštění JavaScriptu mimo webový prohlížeč. Nejčastěji se používá k vytváření webových aplikací s obousměrným připojením v reálném čase, kde klient i server mohou zahájit komunikaci, což jim umožňuje volně si vyměňovat data. Node.js používá událostmi řízený, neblokující I/O model, díky kterému je ideální pro datově náročné aplikace běžící na distribuovaných zařízeních.

V tomto tutoriálu nainstalujeme Node.js a nakonfigurujeme jej tak, aby běžel jako backend server; poté nakonfigurujeme Apache jako frontend proxy server pro Node.js.

Předpoklady

  • Nový CentOS 8 VPS na cloudové platformě Atlantic.net.
  • Heslo uživatele root nakonfigurované na vašem serveru.

Krok 1 – Vytvořte cloudový server Atlantic.Net

Nejprve se přihlaste ke svému cloudovému serveru Atlantic.Net. Vytvořte nový server a jako operační systém vyberte CentOS 8 s alespoň 1 GB RAM. Připojte se ke svému cloudovému serveru přes SSH a přihlaste se pomocí přihlašovacích údajů zvýrazněných v horní části stránky.

Jakmile se přihlásíte k serveru CentOS 8, spusťte následující příkaz a aktualizujte svůj základní systém nejnovějšími dostupnými balíčky.

dnf update -y

Krok 2 – Instalace Node.js

Úložiště Node.js můžete nainstalovat pomocí následujícího příkazu:

curl -sL https://rpm.nodesource.com/setup_12.x | bash -

Jakmile je úložiště nainstalováno, můžete nainstalovat Node.js jednoduše spuštěním následujícího příkazu:

dnf install nodejs -y

Po dokončení instalace můžete ověřit nainstalovanou verzi Node.js pomocí následujícího příkazu:

node -v

Měli byste získat následující výstup:

v12.16.2

Verzi NPM můžete také zkontrolovat pomocí následujícího příkazu:

npm -v

Měli byste získat následující výstup:

6.14.4

Krok 3 – Vytvořte vzorovou aplikaci Node.js

Nejprve vytvořte adresář pro uložení aplikace Node.js:

mkdir project

Dále změňte adresář na projekt a vytvořte ukázkovou aplikaci Node.js pomocí následujícího příkazu:

cd project
nano app.js

Přidejte následující obsah:

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Welcome to Node.js Server');
}).listen(8080, "127.0.0.1");
console.log('Server running at http://127.0.0.1:8080/');

Po dokončení uložte a zavřete soubor.

Vaše aplikace Node.js je nyní připravena k poskytování na portu 8080. Dále spusťte aplikaci následujícím příkazem:

node app.js

Měli byste získat následující výstup:

Server running at http://127.0.0.1:8080/

Výše uvedený výstup ukazuje, že vaše aplikace Node.js funguje správně.

Poté stiskněte CTRL + C pro zastavení aplikace.

Krok 4 – Instalace a konfigurace PM2 pro správu aplikace Node.js

PM2 je správce procesů pro aplikaci Node.js. Umožňuje vám udržovat aplikaci Node.js navždy při životě, spravovat Node.js, znovu načítat Node.js bez prostojů a usnadňovat běžné úlohy správy systému.

Můžete jej nainstalovat pomocí NPM, jak je znázorněno níže:

npm i -g pm2

Po instalaci PM2 změňte adresář na projekt a spusťte aplikaci Node.js s PM2, jak je uvedeno níže:

pm2 start app.js

Po úspěšném spuštění aplikace byste měli získat následující výstup:

                        -------------

__/\\\\\\\\\\\\\____/\\\\____________/\\\\____/\\\\\\\\\_____
 _\/\\\/////////\\\_\/\\\\\\________/\\\\\\__/\\\///////\\\___
  _\/\\\_______\/\\\_\/\\\//\\\____/\\\//\\\_\///______\//\\\__
   _\/\\\\\\\\\\\\\/__\/\\\\///\\\/\\\/_\/\\\___________/\\\/___
    _\/\\\/////////____\/\\\__\///\\\/___\/\\\________/\\\//_____
     _\/\\\_____________\/\\\____\///_____\/\\\_____/\\\//________
      _\/\\\_____________\/\\\_____________\/\\\___/\\\/___________
       _\/\\\_____________\/\\\_____________\/\\\__/\\\\\\\\\\\\\\\_
        _\///______________\///______________\///__\///////////////__


                          Runtime Edition

        PM2 is a Production Process Manager for Node.js applications
                     with a built-in Load Balancer.

                Start and Daemonize any application:
                $ pm2 start app.js

                Load Balance 4 instances of api.js:
                $ pm2 start api.js -i 4

                Monitor in production:
                $ pm2 monitor

                Make pm2 auto-boot at server restart:
                $ pm2 startup

                To go further checkout:
                http://pm2.io/

                        -------------

[PM2] Spawning PM2 daemon with pm2_home=/root/.pm2
[PM2] PM2 Successfully daemonized
[PM2] Starting /root/project/app.js in fork_mode (1 instance)
[PM2] Done.

┌─────┬────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id  │ name   │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├─────┼────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0   │ app    │ default     │ N/A     │ fork    │ 1437     │ 0s     │ 0    │ online    │ 0%       │ 31.1mb   │ root     │ disabled │
└─────┴────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘

Dále povolte spuštění aplikace Node.js při spouštění pomocí následujícího příkazu:

pm2 startup

Tento příkaz vytvoří soubor služby systemd pro aplikaci Node.js a umožní její spuštění po restartu systému, jak je znázorněno níže:

[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/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
Environment=PM2_HOME=/root/.pm2
PIDFile=/root/.pm2/pm2.pid
Restart=on-failure

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...
Created symlink /etc/systemd/system/multi-user.target.wants/pm2-root.service → /etc/systemd/system/pm2-root.service.
[PM2] [v] Command successfully executed.
+---------------------------------------+
[PM2] Freeze a process list on reboot via:
$ pm2 save

[PM2] Remove init script via:
$ pm2 unstartup systemd

Aktivní aplikaci můžete také vypsat pomocí následujícího příkazu:

pm2 list

Měli byste získat následující výstup:

┌─────┬────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id  │ name   │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├─────┼────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0   │ app    │ default     │ N/A     │ fork    │ 1437     │ 104s   │ 0    │ online    │ 0.1%     │ 39.7mb   │ root     │ disabled │
└─────┴────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘

Krok 5 – Konfigurace Apache jako frontend proxy pro Node.js

Dále budete muset nainstalovat a nakonfigurovat webový server Apache jako frontend server pro přístup k aplikaci Node.js.

Nejprve nainstalujte webový server Apache pomocí následujícího příkazu:

dnf install httpd -y

Dále vytvořte konfigurační soubor virtuálního hostitele Apache pro aplikaci Node.js pomocí následujícího příkazu:

nano /etc/httpd/conf.d/example.conf

Přidejte následující řádky:

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName node.example.com
        ErrorLog /var/log/httpd/error.log
        CustomLog /var/log/httpd/access.log combined
        ProxyRequests On
        ProxyPass / http://localhost:8080
        ProxyPassReverse / http://localhost:8080
</VirtualHost>

Po dokončení uložte a zavřete soubor. Poté spusťte webový server Apache a povolte jeho spuštění při restartu pomocí následujícího příkazu:

systemctl start httpd
systemctl enable httpd

Krok 6 – Přístup k aplikaci Node.js

V tomto okamžiku je webový server Apache nakonfigurován pro přístup k aplikaci Node.js. Dále otevřete webový prohlížeč a zadejte adresu URL http://node.example.com. Budete přesměrováni na stránku aplikace Node.js, jak je uvedeno níže:

Závěr

Gratulujeme! Úspěšně jste nasadili aplikaci Node.js s Apache jako frontend serverem. Nyní můžete začít budovat svou Node.js aplikaci pro produkční prostředí – vyzkoušejte to na VPS hostingu od Atlantic.Net!


Linux
  1. Jak nastavit virtuální hostitele Apache na CentOS

  2. Nastavení serveru DHCP na CentOS 8 – Jak na to?

  3. Jak nastavit VSFTPD na CentOS 8

  1. Jak nainstalovat Squid Proxy Server na CentOS 7

  2. Jak nastavit server OpenVPN na CentOS 7

  3. Jak nainstalovat Node.js na Debian 10 a nakonfigurovat Nginx jako frontend proxy server

  1. Jak nakonfigurovat Nginx jako webový server a reverzní proxy pro Apache na CentOS 8

  2. Jak nastavit spouštění PXE pro hardware UEFI

  3. Jak nastavit Apache jako frontend proxy pro Node.js