GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara menyebarkan Aplikasi Node.js dengan pm2 dan Nginx di Ubuntu

pm2 adalah manajer proses untuk aplikasi Node.js, memungkinkan Anda untuk menjaga aplikasi Anda tetap hidup dan memiliki penyeimbang beban bawaan. Sederhana dan kuat, Anda selalu dapat memulai ulang atau memuat ulang aplikasi node tanpa downtime dan memungkinkan Anda membuat cluster aplikasi node.

Dalam tutorial ini, saya akan menunjukkan cara menginstal dan mengkonfigurasi pm2 untuk aplikasi 'Express' sederhana dan kemudian mengkonfigurasi Nginx sebagai proxy terbalik untuk aplikasi node yang berjalan di bawah pm2.

Prasyarat

  • Ubuntu 16.04 - 64bit
  • Keistimewaan Root

Langkah 1 - Instal Node.js LTS

Dalam tutorial ini, kita akan memulai proyek kita dari awal. Pertama, kita perlu menginstal Nodejs di server. Saya akan menggunakan Nodejs LTS versi 6.x yang dapat diinstal dari repositori nodesource.

Instal paket 'python-software-properties ' dari repositori Ubuntu lalu tambahkan repositori Nodejs 'nodesource'.

sudo apt-get install -y python-software-properties
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -

Instal Nodejs LTS versi terbaru.

sudo apt-get install -y nodejs

Ketika instalasi berhasil, periksa node dan versi npm.

node -v
npm -v

Langkah 2 - Buat Aplikasi Sampel Ekspres

Saya akan menggunakan kerangka aplikasi web sederhana yang dibuat dengan paket bernama 'express-generator ' untuk contoh instalasi ini. Generator ekspres dapat diinstal dengan perintah npm.

Instal 'generator ekspres ' dengan npm:

npm install express-generator -g

-g: instal paket di dalam sistem

Kami akan menjalankan aplikasi sebagai pengguna biasa, bukan pengguna root atau super. Jadi kita perlu membuat pengguna baru terlebih dahulu.

Buat pengguna baru, saya beri nama saya 'yume ':

useradd -m -s /bin/bash yume
passwd yume

Login ke pengguna baru dengan menggunakan su:

su - yume

Selanjutnya, buat aplikasi web sederhana baru dengan perintah ekspres:

express hakase-app

Perintah akan membuat direktori proyek baru 'hakase-app '.

Buka direktori proyek dan instal semua dependensi yang dibutuhkan oleh aplikasi.

cd hakase-app
npm install

Kemudian uji dan mulai aplikasi sederhana baru dengan perintah di bawah ini:

DEBUG=myapp:* npm start

Secara default, aplikasi ekspres kami akan berjalan pada port 3000 . Sekarang kunjungi alamat IP server:192.168.33.10:3000

Kerangka aplikasi web sederhana berjalan pada port 3000, di bawah pengguna 'yume'.

Langkah 3 - Instal pm2

pm2 adalah paket node dan dapat diinstal dengan perintah npm. Jadi mari kita instal dengan npm (dengan hak akses root, ketika Anda masih login sebagai hakase pengguna, lalu jalankan perintah "exit" ro menjadi root lagi):

npm install pm2 -g

Sekarang kita dapat menggunakan pm2 untuk aplikasi web kita.

Buka direktori aplikasi 'hakase-app ':

su - hakase
cd ~/hakase-app/

Di sana Anda dapat menemukan file bernama 'package.json ', tampilkan isinya dengan perintah cat.

cat package.json

Anda dapat melihat 'mulai ' baris berisi perintah yang digunakan oleh Nodejs untuk memulai aplikasi ekspres. Perintah ini akan kita gunakan dengan manajer proses pm2.

Jalankan aplikasi express dengan perintah pm2 di bawah ini:

pm2 start ./bin/www

Sekarang Anda dapat melihat hasilnya di bawah ini:

Aplikasi ekspres kami berjalan di bawah pm2 dengan nama 'www ', id '0 '. Anda bisa mendapatkan detail lebih lanjut tentang aplikasi yang berjalan di bawah pm2 dengan opsi show 'show nodeid|name '.

pm2 show www

Jika Anda ingin melihat log aplikasi kami, Anda dapat menggunakan opsi log. Ini hanya akses dan log kesalahan dan Anda dapat melihat Status HTTP aplikasi.

pm2 logs www

Anda dapat melihat bahwa proses kami sedang berjalan. Sekarang, mari kita aktifkan untuk memulai saat boot.

pm2 startup systemd

sistemd :Ubuntu 16 menggunakan systemd.

Anda akan mendapatkan pesan untuk menjalankan perintah sebagai root. Kembali ke hak akses root dengan "keluar" lalu jalankan perintah itu.

sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u yume --hp /home/yume

Ini akan menghasilkan file konfigurasi systemd untuk startup aplikasi. Saat Anda me-reboot server, aplikasi akan berjalan secara otomatis saat startup.

Langkah 4 - Instal dan Konfigurasi Nginx sebagai proxy Terbalik

Dalam tutorial ini, kita akan menggunakan Nginx sebagai proxy terbalik untuk aplikasi node. Nginx tersedia di repositori Ubuntu, instal dengan perintah apt:

sudo apt-get install -y nginx

Selanjutnya, buka 'situs-tersedia ' dan buat file konfigurasi host virtual baru.

cd /etc/nginx/sites-available/
vim hakase-app

Tempelkan konfigurasi di bawah ini:

upstream hakase-app {
    # Nodejs app upstream
    server 127.0.0.1:3000;
    keepalive 64;
}

# Server on port 80
server {
    listen 80;
    server_name hakase-node.co;
    root /home/yume/hakase-app;

    location / {
        # Proxy_pass configuration
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_max_temp_file_size 0;
        proxy_pass http://hakase-app/;
        proxy_redirect off;
        proxy_read_timeout 240s;
    }
}

Simpan file dan keluar dari vim.

Pada konfigurasi:

  • Aplikasi simpul berjalan dengan nama domain 'hakase-node.co '.
  • Semua lalu lintas dari nginx akan diteruskan ke aplikasi simpul yang berjalan pada port 3000 .

Aktifkan konfigurasi dengan membuat symlink di direktori yang mendukung situs.

ln -s /etc/nginx/sites-available/hakase-app /etc/nginx/sites-enabled/

Uji konfigurasi Nginx dan pastikan tidak ada kesalahan.

nginx -t

Mulai Nginx dan aktifkan untuk memulai saat boot:

systemctl start nginx
systemctl enable nginx

Langkah 5 - Pengujian

Buka browser web Anda dan kunjungi nama domain (milik saya):

http://hakase-app.co

Anda akan melihat aplikasi ekspres berjalan di bawah server web nginx.

Selanjutnya, reboot server Anda, dan pastikan aplikasi node berjalan pada saat boot:

pm2 save
sudo reboot

Jika Anda telah masuk lagi ke server Anda, periksa proses aplikasi simpul. Jalankan perintah di bawah ini sebagai 'yume ' pengguna.

su - yume
pm2 status www

Aplikasi Node berjalan di bawah pm2 dan Nginx sebagai proxy terbalik.

  • Ubuntu
  • Node.js
  • Nginx

Ubuntu
  1. Cara Instal Nginx Dengan PHP5 Dan MySQL Di Ubuntu 11.10

  2. Cara Menyebarkan Modsecurity dengan Nginx di Ubuntu 20.04 LTS

  3. Cara Deploy Aplikasi Flask dengan Nginx dan Gunicorn di Ubuntu 20.04

  1. Cara Menginstal Node.js &NPM di Ubuntu 18.04 dan 20.04

  2. Cara Menginstal Node.js dan npm di Ubuntu 18.04

  3. Cara Menginstal Node.js dengan NVM dan Nginx di Ubuntu 22.04

  1. Cara Menginstal Node.js dan npm di Ubuntu 20.04

  2. Cara Menginstal Node.js dan NPM di Ubuntu 18.04

  3. Cara Menginstal Mattermost dengan PostgreSQL dan Nginx di Ubuntu 16.04