GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengatur Apache sebagai Server Proxy Frontend untuk Node.js CentOS 8

Node.js adalah lingkungan runtime JavaScript open-source, lintas platform, yang dapat digunakan untuk menjalankan JavaScript di luar browser web. Ini paling sering digunakan untuk membangun aplikasi web dengan koneksi dua arah waktu nyata, di mana klien dan server dapat memulai komunikasi, memungkinkan mereka untuk bertukar data secara bebas. Node.js menggunakan model I/O non-pemblokiran berbasis peristiwa yang membuatnya sempurna untuk aplikasi intensif data yang berjalan di seluruh perangkat terdistribusi.

Dalam tutorial ini, kita akan menginstal Node.js dan mengkonfigurasinya untuk dijalankan sebagai server backend; kemudian, kita akan mengkonfigurasi Apache sebagai server proxy frontend untuk Node.js.

Prasyarat

  • VPS CentOS 8 baru di Platform Cloud Atlantic.net.
  • Kata sandi root yang dikonfigurasi di server Anda.

Langkah 1 – Buat Server Cloud Atlantic.Net

Pertama, masuk ke Server Cloud Atlantic.Net Anda. Buat server baru, pilih CentOS 8 sebagai sistem operasi dengan setidaknya 1GB RAM. Hubungkan ke Server Cloud Anda melalui SSH dan masuk menggunakan kredensial yang disorot di bagian atas halaman.

Setelah Anda masuk ke server CentOS 8 Anda, jalankan perintah berikut untuk memperbarui sistem dasar Anda dengan paket terbaru yang tersedia.

dnf update -y

Langkah 2 – Instal Node.js

Anda dapat menginstal repositori Node.js menggunakan perintah berikut:

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

Setelah repositori terinstal, Anda dapat menginstal Node.js hanya dengan menjalankan perintah berikut:

dnf install nodejs -y

Setelah instalasi selesai, Anda dapat memverifikasi versi Node.js yang diinstal dengan perintah berikut:

node -v

Anda akan mendapatkan output berikut:

v12.16.2

Anda juga dapat memeriksa versi NPM dengan perintah berikut:

npm -v

Anda akan mendapatkan output berikut:

6.14.4

Langkah 3 – Buat Contoh Aplikasi Node.js

Pertama, mari kita buat direktori untuk menampung aplikasi Node.js:

mkdir project

Selanjutnya, ubah direktori menjadi project dan buat contoh aplikasi Node.js dengan perintah berikut:

cd project
nano app.js

Tambahkan konten berikut:

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/');

Simpan dan tutup file setelah Anda selesai.

Aplikasi Node.js Anda sekarang siap untuk melayani pada port 8080. Selanjutnya, jalankan aplikasi dengan perintah berikut:

node app.js

Anda akan mendapatkan output berikut:

Server running at http://127.0.0.1:8080/

Output di atas menunjukkan bahwa aplikasi Node.js Anda berfungsi dengan baik.

Selanjutnya, tekan CTRL + C untuk menghentikan aplikasi.

Langkah 4 – Instal dan Konfigurasi PM2 untuk Mengelola Aplikasi Node.js

PM2 adalah manajer proses untuk aplikasi Node.js. Ini memungkinkan Anda menjaga aplikasi Node.js tetap hidup selamanya, mengelola Node.js, memuat ulang Node.js tanpa waktu henti, dan memfasilitasi tugas admin sistem umum.

Anda dapat menginstalnya menggunakan NPM seperti yang ditunjukkan di bawah ini:

npm i -g pm2

Setelah menginstal PM2, ubah direktori ke proyek dan mulai aplikasi Node.js dengan PM2 seperti yang ditunjukkan di bawah ini:

pm2 start app.js

Setelah aplikasi berhasil dijalankan, Anda akan mendapatkan output berikut:

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

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


                          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 │
└─────┴────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘

Selanjutnya, aktifkan aplikasi Node.js untuk memulai saat boot dengan perintah berikut:

pm2 startup

Perintah ini akan membuat file layanan systemd untuk aplikasi Node.js dan mengaktifkannya untuk memulai setelah sistem reboot seperti yang ditunjukkan di bawah ini:

[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

Anda juga dapat membuat daftar aplikasi aktif Anda dengan perintah berikut:

pm2 list

Anda akan mendapatkan output berikut:

┌─────┬────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ 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 │
└─────┴────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘

Langkah 5 – Konfigurasi Apache sebagai Proxy Frontend untuk Node.js

Selanjutnya, Anda perlu menginstal dan mengkonfigurasi server web Apache sebagai server frontend untuk mengakses aplikasi Node.js.

Pertama, instal server web Apache dengan perintah berikut:

dnf install httpd -y

Selanjutnya, buat file konfigurasi virtual host Apache untuk aplikasi Node.js dengan perintah berikut:

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

Tambahkan baris berikut:

<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>

Simpan dan tutup file setelah Anda selesai. Kemudian, jalankan server web Apache dan aktifkan untuk memulai saat reboot dengan perintah berikut:

systemctl start httpd
systemctl enable httpd

Langkah 6 – Akses Aplikasi Node.js

Pada titik ini, server web Apache dikonfigurasi untuk mengakses aplikasi Node.js. Selanjutnya, buka browser web Anda dan ketik URL http://node.example.com. Anda akan diarahkan ke halaman aplikasi Node.js seperti gambar di bawah ini:

Kesimpulan

Selamat! Anda telah berhasil menerapkan aplikasi Node.js dengan Apache sebagai server frontend. Sekarang Anda dapat mulai membuat aplikasi Node.js untuk lingkungan produksi – coba di hosting VPS dari Atlantic.Net!


Linux
  1. Cara Mengatur Host Virtual Apache di CentOS

  2. Mengatur Server DHCP di CentOS 8 - Bagaimana Caranya?

  3. Cara Mengatur VSFTPD di CentOS 8

  1. Cara Instal Squid Proxy Server di CentOS 7

  2. Cara Mengatur Server OpenVPN di CentOS 7

  3. Cara Menginstal Node.js di Debian 10 dan mengkonfigurasi Nginx sebagai Server Proxy Frontend

  1. Cara Mengonfigurasi Nginx sebagai Server Web dan Reverse Proxy untuk Apache di CentOS 8

  2. Cara mengatur boot PXE untuk perangkat keras UEFI

  3. Cara Mengatur Apache Sebagai Proxy Frontend untuk Node.js