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.
Tautan
- Ubuntu
- Node.js
- Nginx