Cara Menyiapkan Aplikasi Tetap Node.js di Ubuntu 16.04

Aplikasi Node.js popular kerana keupayaan mereka untuk skala. Menjalankan beberapa proses serentak pada beberapa pelayan menghasilkan latensi yang lebih rendah dan masa operasi yang lebih besar. Semasa menguruskan berbilang pelayan, ia adalah yang paling mudah untuk memulakan aplikasi Node.js secara automatik jika mereka crash. Tutorial ini akan menunjukkan kepada anda cara mengatur ketekunan aplikasi dengan cepat dari contoh Ubuntu 16.04 yang kosong.

Prasyarat

  • Buat contoh Vultr mana-mana saiz dengan Ubuntu 16.04 LTS x64.
  • Sekiranya anda bukan pengguna root, jalankan sudo -sdan taip kata laluan anda. Akses root diperlukan untuk mengubah suai fail permulaan supaya pengurus proses bermula boot.
  • Pastikan Node.js dipasang pada instance, dan versi Node.js 8.9.3 LTS atau lebih baru, yang diperlukan agar pengurus kegigihan dapat berjalan dengan lancar. Gunakan node -vuntuk memeriksa versi yang dipasang. Sekiranya Node.js tidak menggunakan versi yang betul, arahan berikut akan memasangnya.

Pasang Node.js.

$ sudo apt-get update
$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
$ sudo apt-get install -y nodejs

Buat partition swap

Langkah ini adalah pilihan, tetapi disyorkan untuk pemasangan. Sekatan swap adalah bahagian cakera keras yang didedikasikan untuk membantu menambah RAM. Pada contoh Vultr yang lebih kecil, seperti contoh RAM 512MB, mewujudkan partition swap akan memberi manfaat kepada prestasi. Untuk tutorial swap versi automatik, gunakan arahan di bawah.

$ git clone https://github.com/teamtofu/server-tools.git tools
$ bash ./tools/swap.sh

Secara umumnya, menggunakan swap tidak diperlukan untuk kes-kes dengan 4 GB RAM atau lebih apabila menyediakan aplikasi yang berterusan, walaupun ia mungkin meningkatkan prestasi aplikasi. RAM lebih responsif berbanding swap, jadi contohnya dengan lebih banyak RAM akan menghasilkan hasil yang lebih baik tanpa mengira swap.

Pasang Benang

Benang adalah pengurus pakej yang mudah digunakan dari Facebook untuk pakej Node.js. Ini lebih cepat daripada NPM dan juga deterministik, yang sangat berguna ketika menggunakan beberapa pelayan.

$ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
$ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
$ sudo apt-get update && sudo apt-get install yarn

Walau bagaimanapun, NPM boleh digunakan bukannya Benang, dan ia mempunyai arahan setanding kepada semua orang dalam tutorial ini.

Pasang aplikasi Node.js anda

Sekiranya aplikasi anda dihoskan di git repositori, klon dan gunakan yarn install. Permohonan anda harus mempunyai fail kemasukan pelayan, biasanya server.jsatau index.js, yang akan digunakan dalam langkah seterusnya.

Pasang Pengurus Proses 2

Process Manager 2 adalah pakej yang akan memulakan semula aplikasi secara automatik. Proses Manager 2 sangat popular, dan ia digunakan oleh Microsoft, PayPal, dan Intuit, jadi selamat dan boleh dipercayai.

$ yarn global add pm2

Tambahkan aplikasi anda sebagai proses

Aplikasi akan di-daemonized (dijalankan di latar belakang) dan dimulakan semula secara automatik dengan perintah start.

$ pm2 start [path to your entry.js] -i max

Sekiranya anda ingin melancarkan jumlah maksimum proses secara automatik, sampaikan -i maxargumennya. Sekiranya penggunaan tunggal instance Vultr ini adalah untuk melayani aplikasi, maka ini adalah disyorkan. Untuk contoh Vultr dengan lebih dari satu CPU, beberapa proses akan dilancarkan, dan Pengurus Proses 2 akan bertindak sebagai penyeimbang beban untuk semua proses individu ini.

Mulakan aplikasi anda secara automatik semasa boot

Setelah memulakan aplikasi, simpan konfigurasi aplikasi. Kemudian, jalankan arahan permulaan untuk menjalankan Pengurus Proses 2 secara automatik di latar belakang ketika Ubuntu melakukan boot. Untuk Ubuntu 16.04, Process Manager 2 akan mengikat systemd.

$ pm2 save
$ pm2 startup

Sekarang jika aplikasi Node.js anda crash kerana ralat ia akan dimulakan semula, dan jika Ubuntu crash kerana alasan apa pun, proses itu akan dimulakan secara automatik dengan Ubuntu. Proses boleh dimulakan semula pm2 gracefulReload alldan Pengurus Proses 2 boleh dimulakan semula dengan pm2 update. Untuk menghentikan Proses Manager 2 dari mula boot, jalankan pm2 unstartup.

Ujian

Cuba ketik rebootdan periksa untuk melihat apakah aplikasi anda diserahkan setelah Ubuntu naik. Sekiranya aplikasi itu digunakan untuk web dan berkhidmat melalui port 80, maka curl http://localhost/akan menunjukkan HTML untuk halaman permulaan. Sekiranya ia tidak berfungsi, arahan pm2 statusakan menunjukkan proses yang berjalan, dan perintah permulaan boleh diterbitkan semula.

Menyebarkan versi baru aplikasi

Jika aplikasi dikemas kini, seperti dengan menarik repositori git, maka arahan mesti dikeluarkan untuk mengemas kini proses permohonan yang berjalan.

$ pm2 update

Penggunaan contoh

Server Parse , platform sumber terbuka popular sebagai perkhidmatan, berfungsi sebagai backend untuk aplikasi. Backend mungkin terhempas disebabkan oleh ralat dalam kod atau jumlah permintaan, tetapi aplikasi itu tidak akan mengalami downtime kerana server lain (dan / atau proses) terus dijalankan, dan proses Server Parse dengan cepat dimulakan semula.



Leave a Comment

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.

Janji Teknologi Yang Masih Tidak Ditepati

Janji Teknologi Yang Masih Tidak Ditepati

Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.

Fungsi Lapisan Seni Bina Rujukan Data Besar

Fungsi Lapisan Seni Bina Rujukan Data Besar

Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut