Cara Mengatur Aplikasi Node Koa.js di Ubuntu 16.04 LTS

Dalam tutorial ini, kita akan belajar cara mengatur aplikasi web Koa.js untuk produksi, memanfaatkan Node.js. Kami juga akan menautkan domain sampel, dengan proxy terbalik, menggunakan Apache, dan mempelajari cara mengelolanya dengan manajer proses yang tepat. Tanpa basa-basi lagi, mari kita mulai.

Deskripsi Singkat Node.js, Koa.js, dan Apache

Node.js adalah kerangka kerja JavaScript lintas-platform yang cepat berdasarkan mesin V8 Chrome. Ini digunakan di kedua aplikasi desktop dan server dan terkenal dengan penanganan loop acara single-threaded. Node.js memiliki fitur registry paket yang disebut Node Package Manager (NPM), yang menampung lebih dari setengah juta paket. Paket NPM (atau modul) adalah tulang punggung inti dari Node.js, karena mereka adalah kode berbasis komunitas yang dapat berguna dalam aplikasi Node.js Anda. Dalam aplikasi Koa.js kami, Node.js adalah bagian inti dari fungsinya.

Koa.js adalah kerangka kerja web minimalis, dibangun di atas platform Node.js. Dibuat oleh tim yang sama di belakang kerangka Express.js yang populer, tujuannya adalah untuk meminimalkan kerangka Express.js yang sudah minimalis dengan mengecualikan middleware dari intinya. Fitur utama dari Koa.js adalah kenyataan bahwa tidak ada panggilan balik. Koa.js dibangun di atas generator berbasis ES6 dan fitur ES6, seperti Janji.

Apache adalah server web open-source yang populer, digunakan sebagai titik awal yang sangat mendasar untuk server web. Dalam tutorial ini, kita akan menggunakan Apache sebagai proxy terbalik, yang akan memungkinkan kita untuk menautkan aplikasi kita ke domain sampel. Jika Anda tidak memiliki domain, tutorial ini akan tetap bekerja untuk Anda, dengan satu-satunya perbedaan adalah bahwa situs web akan berjalan pada VPS IP Anda, bukan domain.

Menyiapkan Node.js

Seperti halnya kerangka kerja Node.js, Anda harus menginstal Node.js di VPS Anda. Demi tutorial ini, saya akan berasumsi bahwa Anda sudah menginstal Node.js di sistem Anda. Jika tidak, Anda cukup mengikuti petunjuk di sini .

Menyiapkan direktori aplikasi kami

Kita perlu membuat folder, yang akan berisi file inti aplikasi kita.

mkdir site

Jangan ragu untuk mengganti sitedengan nama lain yang Anda inginkan untuk direktori. Selanjutnya, kita perlu menginisialisasi file paket Node.js kita. Ubah ke direktori yang baru saja Anda buat, dan jalankan npm init, dan lengkapi permintaannya. Pada akhirnya, akan terlihat seperti ini:

{
  "name": "site",
  "version": "1.0.0",
  "description": "Koa.js Site",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "yourname",
  "license": "ISC"
}

Menginstal Koa.js

Sekarang setelah kita mengatur direktori kita, kita dapat melanjutkan untuk menginstal Koa.js. Di direktori kerja saat ini /site, ketik berikut ini.

npm install koa

Ini akan mengunduh modul Koa.js dari NPM dan memasangnya di direktori proyek kami untuk penggunaan di masa mendatang. Selanjutnya, kita akan membuat file aplikasi sampel kita yang akan menyimpan kode aplikasi kita. Untuk melakukannya, buat index.jsfile.

nano index.js

Setelah masuk file, buat contoh aplikasi.

const Koa = require('koa');
const app = new Koa();

app.use(async ctx => {
     ctx.body = 'Hello World';
 });

app.listen(3000);
console.log('Website is live!')

Simpan dan tutup file. CTRL+ X.

Kami ingin memastikan bahwa aplikasi kami berjalan dengan baik. Untuk memulainya, jalankan node index.js, dan Anda akan melihat Website is livedi konsol.

Menginstal Apache

Sekarang kita tahu situs web kita berfungsi, kita dapat melanjutkan untuk menginstal Apache dan dependensinya.

sudo apt install -y libapache2-mod-proxy-html libxml2-dev

Untuk menggunakan fitur reverse proxy yang ditemukan di Apache, kita perlu mengaktifkan modul yang diperlukan.

a2enmod proxy
a2enmod proxy_http
a2enmod proxy_ajp
a2enmod rewrite
a2enmod deflate
a2enmod headers
a2enmod proxy_balancer
a2enmod proxy_connect
a2enmod proxy_html

Beberapa modul ini mungkin sudah diaktifkan, tetapi selalu baik untuk memeriksanya.

Sekarang kita perlu mengedit file konfigurasi default untuk Apache.

sudo nano /etc/apache2/sites-enabled/000-default.conf

Di sini, kita perlu menambahkan blok untuk aplikasi kita.

<VirtualHost *:*>
    ProxyPreserveHost On
    ProxyPass / http://0.0.0.0:3000/
    ProxyPassReverse / http://0.0.0.0:3000

    ServerName localhost
</VirtualHost>

Simpan file, CTRL+ X.

Anda mungkin memperhatikan bahwa kami menggunakan port 3000sebagai port untuk kami ProxyPassdan ProxyPassReverseIP. Karena ini adalah port yang sama dengan tempat kita menjalankan aplikasi Koa.js, kita harus memasukkan port yang benar.

Setelah perubahan terjadi, kita perlu me-restart Apache dan meluncurkan kembali aplikasi Koa.js kita.

sudo systemctl restart apache2

Ini akan memastikan bahwa file konfigurasi kami aktif dan siap untuk bekerja ketika kami memulai aplikasi Koa.js kami. Setelah Apache dimulai ulang, navigasikan kembali ke direktori situs Anda, dan mulai aplikasi Koa.js seperti yang kami lakukan sebelumnya. Dari browser web Anda, navigasikan ke http://yourdomain, atau http://yourip:, dan Anda akan melihat "Hello World".

Mengelola aplikasi kita dengan systemd

Sekarang kita telah membahas dasar-dasar membuat contoh aplikasi Koa.js, kami menyadari bahwa dalam lingkungan produksi, memulai aplikasi seperti sekarang tidak praktis. Seorang manajer proses jelas merupakan suatu persyaratan. Di situlah systemd berperan. Secara sederhana, systemd terdiri dari perangkat lunak yang menyediakan blok bangunan untuk sistem Linux. Mirip dengan "init", ia menyediakan sistem untuk mengelola proses pengguna setelah startup sistem. Dalam hal aplikasi kita, systemd memungkinkan kita untuk memulai situs web kita secara otomatis setelah sistem di-boot-ulang, seandainya ada kejadian yang mengganggu waktu kerja sistem. Ini juga menyediakan satu set alat yang berguna ketika mengelola aplikasi kita. Bagian terbaiknya adalah fakta bahwa ia dibangun ke Ubuntu 16.04 LTS, jadi kami tidak perlu menginstal perangkat lunak tambahan apa pun.

Buat layanan systemd

Semua yang kita butuhkan untuk memulai aplikasi kita akan terkandung dalam sebuah file bernama service. Ini menyimpan detail tentang aplikasi kami, seperti nama, direktori, lingkungan, dan lainnya. Untuk membuat file sistem kami, buka editor teks.

sudo nano /lib/systemd/system/site.service

Edit dan simpan file seperti ini.

[Unit]
Description=desc here
Documentation=https://example.com
After=network.target

[Service]
Environment=NODE_PORT=3000
Type=simple
User=youruser
ExecStart=/usr/bin/node /home/[youruser]/site/index.js
Restart=on-failure

[Install]
WantedBy=multi-user.target

Ganti youruserdengan nama pengguna server Anda. Berikut ini ikhtisar cepat bidang-bidang penting:

  • After - Ini menginformasikan systemd untuk menunggu sampai antarmuka jaringan siap sebelum memulai aplikasi kita.
  • Environment- Di sini kita dapat menentukan variabel lingkungan untuk aplikasi kita. Port Node.js kami adalah salah satunya.
  • Type - Ini memberi tahu systemd bahwa aplikasi kita baru saja dapat dinyalakan, tanpa meminta hak pengguna dan semacamnya.
  • User- Ini memberitahu systemd bahwa kami ingin menjalankan aplikasi di bawah akun pengguna kami, yang direkomendasikan. Menjalankan aplikasi sebagai pengguna root dapat menyebabkan banyak kompromi keamanan.
  • ExecStart - Pada dasarnya perintah yang akan dijalankan systemd untuk memulai aplikasi kita, mirip dengan bagaimana kita memulainya secara manual sebelumnya.
  • Restart- Memberitahu systemd dalam kondisi apa untuk memulai kembali aplikasi kita. Dalam hal ini, kami ingin agar situs web kami direstart jika terjadi kesalahan.

Mulai layanan systemd

Kami sekarang siap untuk memulai layanan systemd kami.

sudo systemctl daemon-reload

Ini diperlukan setiap kali file layanan systemd berubah agar systemd mendaftarkan perubahan baru yang dibuat.

Kemudian, mulai aplikasi Anda.

sudo systemctl start site

Arahkan ke situs di browser Anda sekali lagi, untuk memverifikasi bahwa semuanya berfungsi.

Sistem utama dan fungsi pengelolaan

  • stop - Menghentikan aplikasi sepenuhnya.
  • restart - Hentikan aplikasi, dan mulai lagi di bawah proses baru.
  • enable - Memberitahu systemd untuk memulai aplikasi setiap kali Anda menyalakan komputer Anda.
  • status - Memperlihatkan info tentang aplikasi yang sedang berjalan, seperti waktu aktif, status aplikasi, dan lainnya.

Untuk menggunakan salah satu dari fungsi ini, jalankan yang berikut ini.

systemctl <function> site

Kesimpulan

Kami telah berhasil membuat aplikasi Koa.js dan belajar cara membalikkannya, serta mengelolanya dengan systemd. Anda sekarang siap untuk memperluas aplikasi Anda dan membangun contoh ini. Jika Anda ingin mempelajari lebih lanjut tentang Koa.js, dan banyak hal yang dapat Anda lakukan, kunjungi situs web mereka , untuk informasi lebih lanjut. Selain itu, jika Anda ingin mempelajari lebih lanjut tentang manajer proses systemd, baca dokumentasi untuk itu di sini . Akhirnya, jika Anda ingin mempelajari lebih lanjut tentang proxy reverse Apache, silakan memeriksanya di sini .



Leave a Comment

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

6 Hal yang Sangat Menggila dari Nintendo Switch

6 Hal yang Sangat Menggila dari Nintendo Switch

Banyak dari Anda tahu Switch keluar pada Maret 2017 dan fitur-fitur barunya. Bagi yang belum tahu, kami sudah menyiapkan daftar fitur yang membuat 'Switch' menjadi 'gadget yang wajib dimiliki'.

Janji Teknologi Yang Masih Belum Ditepati

Janji Teknologi Yang Masih Belum Ditepati

Apakah Anda menunggu raksasa teknologi untuk memenuhi janji mereka? periksa apa yang belum terkirim.

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Baca blog untuk mengetahui berbagai lapisan dalam Arsitektur Big Data dan fungsinya dengan cara yang paling sederhana.

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Baca ini untuk mengetahui bagaimana Kecerdasan Buatan menjadi populer di antara perusahaan skala kecil dan bagaimana hal itu meningkatkan kemungkinan untuk membuat mereka tumbuh dan memberi keunggulan pada pesaing mereka.

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA telah berkembang cukup sulit bagi pengguna untuk dipecahkan dalam beberapa tahun terakhir. Apakah itu akan tetap efektif dalam deteksi spam dan bot di masa mendatang?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Saat Sains Berkembang dengan kecepatan tinggi, mengambil alih banyak upaya kita, risiko menundukkan diri kita pada Singularitas yang tidak dapat dijelaskan juga meningkat. Baca, apa arti singularitas bagi kita.

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Apa itu telemedicine, perawatan kesehatan jarak jauh dan dampaknya terhadap generasi mendatang? Apakah itu tempat yang bagus atau tidak dalam situasi pandemi? Baca blog untuk menemukan tampilan!

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Anda mungkin pernah mendengar bahwa peretas menghasilkan banyak uang, tetapi pernahkah Anda bertanya-tanya bagaimana cara mereka mendapatkan uang sebanyak itu? mari berdiskusi.

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Baru-baru ini Apple merilis macOS Catalina 10.15.4 pembaruan suplemen untuk memperbaiki masalah tetapi tampaknya pembaruan menyebabkan lebih banyak masalah yang mengarah ke bricking mesin mac. Baca artikel ini untuk mempelajari lebih lanjut