Setup Server Keystone.js Menggunakan Nginx Reverse Proxy di Ubuntu 16.04

Dalam tutorial ini, kita akan menyiapkan server web dengan proxy terbalik. CMS yang akan kami gunakan adalah Keystone.js, kerangka kerja aplikasi web terkenal yang didasarkan pada Express.js. Proxy terbalik yang akan kami gunakan adalah Nginx, yang merupakan proxy terbalik gratis dan open-source, serta server HTTP. Basis data yang akan kita gunakan adalah MongoDB, basis data dokumen NoSQL. Ini akan mengharuskan Anda memiliki domain dengan catatan yang disiapkan. Jika Anda tidak memiliki set itu, maka lanjutkan dan rawat, dan kembali ke tutorial ini.

Menginstal Node

Pertama, kita akan menginstal Node.js, yang merupakan penerjemah Javascript berdasarkan mesin Javascript Chrome V8.

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

Menginstal Nginx

Selanjutnya, kita akan menginstal Nginx, proxy terbalik kami.

sudo apt update
sudo apt install nginx

Ini akan memperbarui daftar paket, dan menginstal Nginx. Setelah instalasi selesai, kami akan mengatur proyek simpul kami.

Menginisialisasi proyek Keystone kami

Buat proyek simpul kami. Untuk melakukan itu, cukup buat folder baru.

mkdir website

Lalu, kita akan membuat package.jsonfile kita . Untuk melakukannya, jalankan saja npm initdi terminal Anda, isi kolom, dan balas " yes" untuk mengonfirmasi. Setelah Anda membuat package.jsonfile, maka kami akan menginstal modul simpul berikut.

sudo npm install -g generator-keystone
sudo npm install -g yo

Setelah selesai mengunduh, jalankan yang berikut ini.

yo keystone

Isi kolom yang wajib diisi. Ini akan meminta Anda untuk project name, para template engine, emailuntuk panel kontrol, dan sebagainya. Jika Anda tidak tahu harus memilih apa, maka standarnya akan baik-baik saja. Setelah mengonfigurasi pengaturan keystone, kami dapat menguji apakah server kami berjalan dengan mengetik node keystoneuntuk memulai aplikasi Anda. Secara default, aplikasi Anda akan berjalan localhostpada port 3000. Perhatikan bahwa jika Anda tidak menginstal MongoDB, basis data tidak akan segera tersedia untuk Anda. Anda dapat mempelajari cara menginstalnya nanti di tutorial.

Berikut adalah tata letak direktori dasar untuk Keystone.js:

  • /lib - Di sinilah Anda akan menyimpan perpustakaan khusus Anda, dan kode lainnya.

  • /models- Di sinilah Anda akan menyimpan model basis data aplikasi Anda. KeystoneJS menggunakan MongoDB sebagai penyedia basis data.

  • /public - Di sinilah file statis Anda (CSS, JS, gambar, dan sebagainya) akan disimpan.

  • /routes/api - Di sinilah pengontrol API aplikasi Anda akan disimpan.

  • /routes.views - Pengontrol tampilan aplikasi akan disimpan di sini.

  • /templates - Di sinilah semua file template aplikasi Anda akan disimpan.

  • /updates - Di sinilah skrip migrasi Anda akan disimpan.

  • package.json - Ini adalah file konfigurasi npm Anda yang dihasilkan oleh generator untuk kami.

  • keystone.js - File awal utama kami, kami menjalankan ini ketika kami memulai situs web.

Menginisialisasi basis data kami

Seperti disebutkan sebelumnya, basis data kami yang akan kami gunakan adalah MongoDB, yang merupakan basis data berorientasi dokumen NoSQL. Jika Anda sudah menginstal MongoDB, Anda dapat melewati bagian ini. Jika tidak, maka inilah cara menginstalnya di Ubuntu 16.04.

Impor kunci publik yang digunakan untuk paket mongoDB.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

Buat file daftar yang digunakan untuk menginstal paket.

echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

Perbarui daftar paket Anda menggunakan apt.

sudo apt update

Akhirnya, instal MongoDB.

sudo apt install mongodb-org -y

Setelah instalasi ini selesai, mulai MongoDB.

sudo service mongod start

Ini akan memulai proses MongoDB pada port 27017.

MongoDB akan digunakan di seluruh aplikasi, dan itu akan digunakan untuk menyimpan informasi yang kami gunakan untuk model kami, misalnya Usermodel. Keystone menggunakannya sebagai basis data pilihan, dan saat ini Anda tidak dapat menggunakan vendor basis data lainnya.

Menginstal PM2

Sekarang saatnya untuk menginstal PM2 (Process Manager 2.) PM2 adalah manajer proses untuk aplikasi Node.js, dalam bentuk modul npm. Ini memberikan cara mudah bagi Anda untuk mengelola aplikasi Anda dan menjalankannya di latar belakang. Karena ada di NPM, yang harus kita lakukan untuk menginstalnya adalah menjalankan yang berikut.

sudo npm install pm2 -g

Ini memberi tahu npm untuk menginstalnya secara global, sehingga kami dapat menggunakannya di mana saja di sistem kami.

Menjalankan / Mengelola aplikasi pada PM2

Sebelumnya, kami menjalankan aplikasi web kami dengan node keystone. Dengan PM2, ini sedikit berbeda. Kami sekarang menjalankan aplikasi simpul kami dengan yang berikut ini.

pm2 start keystone.js

Ini akan menambahkan aplikasi PM2 kami ke daftar proses kami, dan sebuah kotak kecil akan ditampilkan sehingga Anda dapat melihat bahwa itu memang online. Perhatikan kotak berlabel iduntuk proses Anda. Tetap sedekat ini, karena kami akan membuat banyak referensi untuk ini nanti.

Untuk melihat log untuk aplikasi Anda.

pm2 logs [id]

Misalnya, pm2 logs 0jika ini adalah aplikasi PM2 pertama Anda.

Untuk menghentikan aplikasi web Anda kapan saja.

pm2 stop [id]

Untuk menghapus aplikasi Anda sepenuhnya.

pm2 delete [id]

PM2 bahkan memiliki dasbor pemantauan jika Anda ingin melihat beberapa statistik dasar untuk aplikasi Anda, dan Anda dapat mengaksesnya dengan ini.

pm2 monit

Ini akan menampilkan beberapa informasi dasar seperti penggunaan RAM, penggunaan CPU, dan waktu aktif.

Fitur hebat yang ditawarkan PM2 adalah watching. Intinya, menonton adalah ketika PM2 secara otomatis mendeteksi perubahan pada salah satu file dalam direktori yang sama dengan file awal Anda, dan itu akan secara otomatis memulai ulang aplikasi Anda. Untuk mengaktifkannya, cukup restart aplikasi Anda, tetapi berikan bendera jam tangan.

pm2 restart [id] --watch

Untuk menonaktifkan menonton setelah diaktifkan, cukup jalankan perintah yang sama lagi, dan menonton akan dinonaktifkan.

Dalam tutorial ini, kita akan berhenti menonton.

Menyiapkan proxy terbalik Anda

Pastikan Anda telah menginstal Nginx. Jika karena alasan tertentu tidak, rujuk langkah-langkah di atas.

Sesuaikan pengaturan firewall Anda. Di Ubuntu, ufwadalah firewall resmi. Secara default, koneksi diblokir pada port 80. Kita perlu menambahkan pengecualian untuk Nginx pada port 80, di mana aplikasi web kita akan berjalan.

sudo ufw allow 'Nginx HTTP'

Pastikan server Nginx Anda berjalan.

systemctl status nginx

Di bawah Activebagian, jika Anda melihat active (running), maka Anda sudah siap. Jika tidak, Anda dapat mencoba memulai kembali layanan.

systemctl restart nginx

Hapus file konfigurasi Nginx default.

sudo rm /etc/nginx/sites-available/default

Buat yang baru, dan cukup sebut saja node.

sudo nano /etc/nginx/sites-available/node

Rekatkan yang berikut ke dalam file, dan ganti example.comdengan domain situs web Anda.

listen 80;

server_name example.com;

    location / {

        proxy_set_header   X-Forwarded-For $remote_addr;

        proxy_set_header   Host $http_host;

        proxy_pass         "http://127.0.0.1:3000";
    }
}

Perhatikan bahwa proxy_passmenunjukkan IP aplikasi Keystone kami berjalan secara lokal, yaitu localhostpada port 3000. listen 80adalah port yang kita inginkan untuk diarahkan ke aplikasi, yang dalam hal ini adalah port 80.

Kemudian, kita perlu membuat symlink, atau tautan simbolik ke folder bernama sites-enabled. Perbedaan antara sites-enableddan sites-availableapakah itu sites-enabledsebenarnya dimuat oleh Nginx.

sudo ln -s /etc/nginx/sites-available/node /etc/nginx/sites-enabled/node

Sekarang file konfigurasi Anda sites-availableakan siap digunakan, dan itu akan diambil dari sites-enabled. Untuk menerapkan konfigurasi sehingga berlaku, cukup restart Nginx.

sudo systemctl restart nginx

Terakhir, restart aplikasi PM2 Anda

pm2 restart [id]

Sekarang Anda dapat menavigasi ke domain Anda di browser, dan Anda akan melihat Welcome to Keystonelayar, dengan panel untuk Anda masuk.

Jika Anda melihatnya, maka Anda telah berhasil membuat server web produksi Node.js. Jika tidak, maka Anda mungkin telah melakukan langkah yang salah, dan Anda mungkin ingin kembali dan mengikuti setiap langkah dengan hati-hati.

Anda dapat mempelajari lebih lanjut tentang Nginx dengan mengunjungi situs web mereka .

Saya harap Anda menikmati tutorial ini, dan saya harap ini telah membantu Anda mengatur server web Anda sendiri untuk produksi di Vultr VPS Anda.



Leave a Comment

Cara Memasang Anchor CMS pada Fedora 26 LAMP VPS

Cara Memasang Anchor CMS pada Fedora 26 LAMP VPS

Menggunakan Sistem yang Berbeda? Anchor CMS adalah Content Engine System (CMS) Blog Engine yang super-sederhana dan sangat ringan, gratis, dan terbuka

Cara Memasang Directus 6.4 CMS pada Fedora 26 LAMP VPS

Cara Memasang Directus 6.4 CMS pada Fedora 26 LAMP VPS

Menggunakan Sistem yang Berbeda? Directus 6.4 CMS adalah Headless Content Management System (CMS) yang kuat dan fleksibel, gratis dan open source yang menyediakan pengembang

Cara Memasang Thelia 2.3 pada Debian 9

Cara Memasang Thelia 2.3 pada Debian 9

Menggunakan Sistem yang Berbeda? Thelia adalah alat sumber terbuka untuk membuat situs web e-bisnis dan mengelola konten online yang ditulis dalam PHP. Kode sumber thelia i

Cara Memasang CMS CMS 2.0 pada CentOS 7 LAMP VPS

Cara Memasang CMS CMS 2.0 pada CentOS 7 LAMP VPS

Menggunakan Sistem yang Berbeda? Couch CMS adalah Content Management System (CMS) sederhana dan fleksibel, gratis dan open source yang memungkinkan desainer web untuk mendesain

Cara Memasang Automad CMS di FreeBSD 12

Cara Memasang Automad CMS di FreeBSD 12

Menggunakan Sistem yang Berbeda? Automad adalah open source berbasis sistem manajemen konten (CMS) dan mesin template yang ditulis dalam PHP. Kode sumber Automad i

Cara Memasang CMS 1.0 Oktober di VPS LAM Ubuntu 16.04

Cara Memasang CMS 1.0 Oktober di VPS LAM Ubuntu 16.04

Menggunakan Sistem yang Berbeda? 1.0 Oktober CMS adalah Content Management System (CMS) yang sederhana dan dapat diandalkan, gratis dan open source yang dibangun di atas kerangka Laravel

Cara Memasang BlogoText CMS pada Debian 9 LAMP VPS

Cara Memasang BlogoText CMS pada Debian 9 LAMP VPS

Menggunakan Sistem yang Berbeda? BlogoText CMS adalah Content Management System (CMS) yang sederhana dan ringan, gratis, dan engine blog minimalis

Menginstal Bolt CMS pada CentOS 7

Menginstal Bolt CMS pada CentOS 7

Bolt adalah CMS open source yang ditulis dalam PHP. Kode sumber baut di-host di GitHub. Panduan ini akan menunjukkan kepada Anda cara menginstal Bolt CMS pada CentOS 7 Vult yang baru

Cara Memasang Backdrop CMS 1.8.0 pada Debian 9 LAMP VPS

Cara Memasang Backdrop CMS 1.8.0 pada Debian 9 LAMP VPS

Menggunakan Sistem yang Berbeda? Backdrop CMS 1.8.0 adalah Content Management System (CMS) yang sederhana dan fleksibel, ramah seluler, gratis dan terbuka yang memungkinkan kami

Cara Memasang Pagekit 1.0 CMS pada Debian 9 LAMP VPS

Cara Memasang Pagekit 1.0 CMS pada Debian 9 LAMP VPS

Menggunakan Sistem yang Berbeda? Pagekit 1.0 CMS adalah Content Management System (CMS) yang indah, modular, dapat diperpanjang dan ringan, dengan

Cara Memasang WonderCMS di FreeBSD 12

Cara Memasang WonderCMS di FreeBSD 12

Menggunakan Sistem yang Berbeda? WonderCMS adalah open source, CMS file flat dan kecil yang ditulis dalam PHP. Kode sumber WonderCMS di-host di Github. Panduan ini wil

Cara Menginstal Neos CMS di Ubuntu 18.04 LTS

Cara Menginstal Neos CMS di Ubuntu 18.04 LTS

Menggunakan Sistem yang Berbeda? Neos adalah Platform Aplikasi Konten dengan CMS dan kerangka kerja aplikasi pada intinya. Panduan ini akan menunjukkan cara menginstal

Cara Memasang Pagekit 1.0 CMS pada VPS FreeBSD 11 FAMP

Cara Memasang Pagekit 1.0 CMS pada VPS FreeBSD 11 FAMP

Menggunakan Sistem yang Berbeda? Pagekit 1.0 CMS adalah Content Management System (CMS) yang indah, modular, dapat diperpanjang dan ringan, dengan

Cara Memasang PyroCMS di Debian 9

Cara Memasang PyroCMS di Debian 9

Menggunakan Sistem yang Berbeda? PyroCMS adalah CMS open source yang ditulis dalam PHP. Kode sumber PyroCMS dihosting di GitHub. Dalam panduan ini berjalan dengan baik melalui keseluruhan

Cara Memasang Redaxscript 3.2 CMS pada VPS Debian 9 LAMP

Cara Memasang Redaxscript 3.2 CMS pada VPS Debian 9 LAMP

Menggunakan Sistem yang Berbeda? Redaxscript 3.2 CMS adalah Content Management System (CMS) yang modern dan sangat ringan, gratis dan open source dengan roket

Instal Tiki Wiki CMS Groupware di Ubuntu 18.04 LTS

Instal Tiki Wiki CMS Groupware di Ubuntu 18.04 LTS

Menggunakan Sistem yang Berbeda? Pendahuluan Tiki Wiki CMS Groupware, juga dikenal sebagai Tiki, adalah sistem manajemen konten wiki sumber terbuka dan gratis. Fitur Tikis

Cara Memasang Anchor CMS pada Ubuntu 16.04 LAMP VPS

Cara Memasang Anchor CMS pada Ubuntu 16.04 LAMP VPS

Menggunakan Sistem yang Berbeda? Anchor CMS adalah Content Engine System (CMS) Blog Engine yang super-sederhana dan sangat ringan, gratis, dan terbuka

Cara Memasang Subrion 4.1 CMS pada Fedora 26 LAMP VPS

Cara Memasang Subrion 4.1 CMS pada Fedora 26 LAMP VPS

Menggunakan Sistem yang Berbeda? Subrion 4.1 CMS adalah Content Management System (CMS) open source yang kuat dan fleksibel yang menghadirkan konten yang intuitif dan jelas

Cara Memasang BoltWire di Ubuntu 18.04

Cara Memasang BoltWire di Ubuntu 18.04

Menggunakan Sistem yang Berbeda? Pendahuluan BoltWire adalah sistem manajemen konten gratis dan ringan yang ditulis dalam PHP. Dibandingkan dengan sebagian besar Pengelola Konten lainnya

Cara Memasang Anchor CMS pada Debian 9 LAMP VPS

Cara Memasang Anchor CMS pada Debian 9 LAMP VPS

Menggunakan Sistem yang Berbeda? Anchor CMS adalah Content Engine System (CMS) Blog Engine yang super-sederhana dan sangat ringan, gratis, dan terbuka

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