Sediakan Pelayan Keystone.js Menggunakan Nginx Reverse Proxy pada Ubuntu 16.04

Dalam tutorial ini, kita akan menyediakan pelayan web dengan proksi terbalik. CMS yang akan kami gunakan adalah Keystone.js, kerangka aplikasi web terkenal berdasarkan Express.js. Proksi terbalik yang akan kita gunakan adalah Nginx, yang merupakan proksi terbalik sumber bebas dan terbuka, serta pelayan HTTP. Pangkalan data yang akan kami gunakan adalah MongoDB, pangkalan data dokumen NoSQL. Ini memerlukan anda mempunyai domain dengan catatan disiapkan. Sekiranya anda tidak mempunyai set itu, teruskan dan selesaikannya, dan kembali ke tutorial ini.

Memasang Nod

Pertama, kami akan memasang Node.js, yang merupakan jurubahasa Javascript berdasarkan enjin 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

Memasang Nginx

Seterusnya, kami akan memasang Nginx, proksi terbalik kami.

sudo apt update
sudo apt install nginx

Ini akan mengemas kini senarai pakej, dan memasang Nginx. Setelah pemasangan selesai, kami akan menyiapkan projek simpul kami.

Memulakan projek Keystone kami

Buat projek simpul kami. Untuk melakukannya, cukup buat folder baru.

mkdir website

Kemudian, kami akan membuat package.jsonfail kami . Untuk melakukannya, jalankan npm initdi terminal anda, isikan medan, dan balas " yes" untuk mengesahkan. Setelah anda membuat package.jsonfail, maka kami akan memasang modul simpul berikut.

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

Setelah selesai memuat turun, jalankan yang berikut.

yo keystone

Isi bidang yang diperlukan. Ia akan meminta anda untuk project name, yang template engine, emailuntuk panel kawalan, dan sebagainya. Sekiranya anda tidak tahu apa yang harus dipilih, maka lalai akan baik-baik saja. Setelah anda mengatur konfigurasi keystone anda, kami dapat menguji untuk melihat apakah pelayan kami berjalan dengan menaip node keystoneuntuk memulakan aplikasi anda. Secara lalai, aplikasi anda akan berjalan di localhost, di port 3000. Perhatikan bahawa jika anda tidak memasang MongoDB, pangkalan data tidak akan tersedia untuk anda dengan segera. Anda boleh belajar memasangnya kemudian dalam tutorial.

Berikut adalah susun atur direktori asas untuk Keystone.js:

  • /lib - Di sinilah anda akan menyimpan perpustakaan tersuai anda, dan kod lain.

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

  • /public - Di sinilah fail statik anda (CSS, JS, gambar dan sebagainya) akan disimpan.

  • /routes/api - Di sinilah pengawal API aplikasi anda akan disimpan.

  • /routes.views - Pengawal paparan aplikasi akan disimpan di sini.

  • /templates - Di sinilah semua fail templat aplikasi anda akan disimpan.

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

  • package.json - Ini adalah fail konfigurasi npm anda yang dihasilkan penjana untuk kami.

  • keystone.js - Fail permulaan utama kami, kami menjalankannya semasa memulakan laman web.

Memulakan pangkalan data kami

Seperti yang telah disebutkan sebelumnya, pangkalan data kami yang akan kami gunakan adalah MongoDB, yang merupakan pangkalan data berorientasikan dokumen NoSQL yang boleh dipercayai. Sekiranya anda telah memasang MongoDB, anda boleh melangkau bahagian ini. Sekiranya tidak, inilah cara memasangnya di Ubuntu 16.04.

Import kunci awam yang digunakan untuk pakej mongoDB.

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

Buat fail senarai yang digunakan untuk memasang pakej.

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

Kemas kini senarai pakej anda menggunakan apt.

sudo apt update

Akhirnya, pasang MongoDB.

sudo apt install mongodb-org -y

Apabila pemasangan ini selesai, mulakan MongoDB.

sudo service mongod start

Ini akan memulakan proses MongoDB di pelabuhan 27017.

MongoDB akan digunakan di seluruh aplikasi, dan akan digunakan untuk menyimpan maklumat yang kami gunakan untuk model kami, misalnya Usermodel. Keystone menggunakannya sebagai pangkalan data pilihan, dan pada masa ini anda tidak dapat menggunakan vendor pangkalan data lain.

Memasang PM2

Kini tiba masanya untuk memasang PM2 (Process Manager 2.) PM2 adalah pengurus proses untuk aplikasi Node.js, dalam bentuk modul npm. Ini menyediakan cara mudah bagi anda untuk menguruskan aplikasi dan menjalankannya di latar belakang. Kerana ada di NPM, yang perlu kita lakukan untuk memasangnya adalah seperti berikut.

sudo npm install pm2 -g

Ini memberitahu npm untuk memasangnya secara global, jadi kami dapat menggunakannya di mana saja di sistem kami.

Menjalankan / Menguruskan aplikasi pada PM2

Sebelumnya, kami menjalankan aplikasi web kami dengan node keystone. Dengan PM2, ia sedikit berbeza. Kami kini menjalankan aplikasi nod kami dengan yang berikut.

pm2 start keystone.js

Ini akan menambahkan aplikasi PM2 kami ke senarai proses kami, dan kotak kecil akan dipaparkan sehingga anda dapat melihat bahawa aplikasi itu memang dalam talian. Perhatikan kotak berlabel iduntuk proses anda. Jauhkan ini, kerana kita akan membuat banyak rujukan mengenai perkara ini di kemudian hari.

Untuk melihat log aplikasi anda.

pm2 logs [id]

Contohnya, pm2 logs 0jika ini adalah aplikasi PM2 pertama anda.

Untuk menghentikan aplikasi web anda pada bila-bila masa.

pm2 stop [id]

Untuk memadam sepenuhnya aplikasi anda.

pm2 delete [id]

PM2 bahkan mempunyai dashboard pemantauan jika anda ingin melihat beberapa statistik asas untuk aplikasi anda, dan anda boleh mengaksesnya dengan ini.

pm2 monit

Ini akan menunjukkan beberapa maklumat asas seperti penggunaan RAM, penggunaan CPU, dan waktu operasi.

Ciri hebat yang ditawarkan oleh PM2 adalah watching. Pada dasarnya, menonton adalah ketika PM2 mengesan secara automatik perubahan pada mana-mana fail dalam direktori yang sama dengan fail permulaan anda, dan secara automatik akan memulakan semula aplikasi anda. Untuk mengaktifkannya, mulakan semula aplikasi anda, tetapi berikan bendera jam tangan.

pm2 restart [id] --watch

Untuk mematikan menonton setelah diaktifkan, jalankan perintah yang sama sekali lagi, dan menonton akan dilumpuhkan.

Dalam tutorial ini, kita akan berhenti menonton.

Menyiapkan proksi terbalik anda

Pastikan Nginx dipasang. Sekiranya atas sebab tertentu tidak, rujuk langkah-langkah di atas.

Laraskan tetapan firewall anda. Di Ubuntu, ufwadalah firewall rasmi. Secara lalai, sambungan disekat di port 80. Kita perlu menambah pengecualian untuk Nginx di port 80, yang mana aplikasi web kita akan berjalan.

sudo ufw allow 'Nginx HTTP'

Sahkan bahawa pelayan Nginx anda sedang berjalan.

systemctl status nginx

Di bawah Activebahagian, jika anda lihat active (running), maka anda sudah siap. Sekiranya tidak, anda boleh cuba memulakan semula perkhidmatan.

systemctl restart nginx

Padamkan fail konfigurasi Nginx lalai.

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

Buat yang baru, dan sebut saja node.

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

Tampalkan yang berikut ke dalam fail, dan ganti example.comdengan domain laman 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 bahawa proxy_passmenandakan IP aplikasi Keystone kami dijalankan secara tempatan, yang berada localhostdi port 3000. listen 80adalah port yang kita mahukan aplikasi diarahkan, yang dalam kes ini adalah port 80.

Kemudian, kita perlu membuat pautan symlink, atau simbolik ke folder yang dipanggil sites-enabled. Perbezaan antara sites-enableddan sites-availableyang sites-enabledsebenarnya dimuat oleh Nginx.

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

Sekarang fail konfigurasi anda sites-availableakan siap digunakan, dan fail akan dimuat dari sites-enabled. Untuk menggunakan konfigurasi sehingga berkesan, mulakan semula Nginx.

sudo systemctl restart nginx

Akhirnya, mulakan semula aplikasi PM2 anda

pm2 restart [id]

Sekarang anda boleh menavigasi ke domain anda dalam penyemak imbas, dan anda akan melihat Welcome to Keystoneskrin, dengan panel untuk anda log masuk.

Sekiranya anda melihatnya, anda telah berjaya menyediakan pelayan web pengeluaran Node.js. Sekiranya tidak, anda mungkin telah melakukan langkah yang tidak betul, dan anda mungkin mahu kembali dan mengikuti setiap langkah dengan teliti.

Anda boleh mengetahui lebih lanjut mengenai Nginx dengan melayari laman web mereka .

Saya harap anda menikmati tutorial ini, dan saya harap ini dapat membantu anda menyediakan pelayan web anda sendiri untuk pengeluaran di Vultr VPS anda.



Leave a Comment

Cara Memasang Backdrop CMS 1.8.0 pada VPS CentOS 7 LAMP

Cara Memasang Backdrop CMS 1.8.0 pada VPS CentOS 7 LAMP

Menggunakan Sistem Berbeza? Backdrop CMS 1.8.0 adalah Sistem Pengurusan Kandungan (CMS) sumber mudah alih, mudah alih, percuma dan terbuka yang membolehkan kami

Cara Pasang Neos CMS pada FreeBSD 12

Cara Pasang Neos CMS pada FreeBSD 12

Menggunakan Sistem Berbeza? Neos adalah Platform Aplikasi Kandungan dengan CMS dan kerangka aplikasi di terasnya. Panduan ini akan menunjukkan cara pemasangan

Cara Memasang Subrion 4.1 CMS pada Ubuntu 16.04 LAMP VPS

Cara Memasang Subrion 4.1 CMS pada Ubuntu 16.04 LAMP VPS

Menggunakan Sistem Berbeza? Subrion 4.1 CMS adalah Sistem Pengurusan Kandungan sumber terbuka (CMS) yang kuat dan fleksibel yang membawa kandungan intuitif dan jelas

Cara Memasang WonderCMS di Fedora 29

Cara Memasang WonderCMS di Fedora 29

Menggunakan Sistem Berbeza? WonderCMS adalah sumber terbuka, cepat dan kecil fail CMS rata yang ditulis dalam PHP. Kod sumber WonderCMS dihoskan pada Github. Panduan ini wil

Cara Memasang Neos CMS pada Debian 9

Cara Memasang Neos CMS pada Debian 9

Menggunakan Sistem Berbeza? Neos adalah Platform Aplikasi Kandungan dengan CMS dan kerangka aplikasi di terasnya. Panduan ini akan menunjukkan cara pemasangan

Bagaimana untuk Memasang ProcessWire CMS 3.0 pada FreeBSD 11 FAMP VPS

Bagaimana untuk Memasang ProcessWire CMS 3.0 pada FreeBSD 11 FAMP VPS

Menggunakan Sistem Berbeza? ProcessWire CMS 3.0 adalah Sistem Pengurusan Kandungan (CMS) yang mudah, fleksibel dan berkuasa, bebas dan terbuka. ProcessWire CMS 3.

Cara Memasang PyroCMS pada Ubuntu 16.04

Cara Memasang PyroCMS pada Ubuntu 16.04

Menggunakan Sistem Berbeza? PyroCMS adalah CMS sumber terbuka yang ditulis dalam PHP. Kod sumber PyroCMS dihoskan pada GitHub. Dalam panduan ini berjalan dengan lancar

Cara Memasang Backdrop CMS 1.8.0 pada Fedora 26 LAMP VPS

Cara Memasang Backdrop CMS 1.8.0 pada Fedora 26 LAMP VPS

Menggunakan Sistem Berbeza? Backdrop CMS 1.8.0 adalah Sistem Pengurusan Kandungan (CMS) sumber mudah alih, mudah alih, percuma dan terbuka yang membolehkan kami

Cara Memasang Automad CMS di CentOS 7

Cara Memasang Automad CMS di CentOS 7

Menggunakan Sistem Berbeza? Automad adalah sistem pengurusan kandungan berasaskan fail sumber terbuka (CMS) dan mesin templat yang ditulis dalam PHP. Kod sumber Automad i

Cara Pasang WonderCMS pada FreeBSD 12

Cara Pasang WonderCMS pada FreeBSD 12

Menggunakan Sistem Berbeza? WonderCMS adalah sumber terbuka, cepat dan kecil fail CMS rata yang ditulis dalam PHP. Kod sumber WonderCMS dihoskan pada Github. Panduan ini wil

Cara Pasang CMS BlogoText pada FPS 26 LAMP VPS

Cara Pasang CMS BlogoText pada FPS 26 LAMP VPS

Menggunakan Sistem Berbeza? BlogoText CMS adalah Sistem Pengurusan Kandungan (CMS) yang mudah dan ringan, percuma dan terbuka dan enjin blog minimalis

Pasang Tiki Wiki CMS Groupware pada Ubuntu 18.04 LTS

Pasang Tiki Wiki CMS Groupware pada Ubuntu 18.04 LTS

Menggunakan Sistem Berbeza? Pengenalan Tiki Wiki CMS Groupware, juga dikenali sebagai Tiki, adalah sistem pengurusan kandungan wiki sumber terbuka dan bebas. Ciri Tikis

Cara Pasang BoltWire pada Ubuntu 18.04

Cara Pasang BoltWire pada Ubuntu 18.04

Menggunakan Sistem Berbeza? Pengenalan BoltWire adalah sistem pengurusan kandungan percuma dan ringan yang ditulis dalam PHP. Berbanding dengan kebanyakan Pengurus Kandungan lain

Cara Pasang ImpressPages CMS 5.0 pada FPS VPS 26 LAMP

Cara Pasang ImpressPages CMS 5.0 pada FPS VPS 26 LAMP

Menggunakan Sistem Berbeza? ImpressPages CMS 5.0 adalah Sistem Pengurusan Kandungan (CMS) yang mudah dan berkesan, bebas dan sumber terbuka, mesra pengguna, berasaskan MVC

Cara Pasang PyroCMS pada Fedora 28

Cara Pasang PyroCMS pada Fedora 28

Menggunakan Sistem Berbeza? PyroCMS adalah CMS sumber terbuka yang ditulis dalam PHP. Kod sumber PyroCMS dihoskan pada GitHub. Dalam panduan ini berjalan dengan lancar

Cara Memasang CMS 1.0 Oktober pada Fedora 26 LAMP VPS

Cara Memasang CMS 1.0 Oktober pada Fedora 26 LAMP VPS

Menggunakan Sistem Berbeza? Oktober 1.0 CMS adalah Sistem Pengurusan Kandungan (CMS) yang mudah dan boleh dipercayai, bebas yang dibina di atas rangka Laravel

Cara Pasang Microweber pada CentOS 7

Cara Pasang Microweber pada CentOS 7

Menggunakan Sistem Berbeza? Microweber adalah CMS drag and drop sumber terbuka dan kedai dalam talian. Kod sumber Microweber dihoskan di GitHub. Panduan ini akan menunjukkan kepada anda

Cara Pasang WonderCMS pada CentOS 7

Cara Pasang WonderCMS pada CentOS 7

Menggunakan Sistem Berbeza? WonderCMS adalah sumber terbuka, cepat dan kecil fail CMS rata yang ditulis dalam PHP. Kod sumber WonderCMS dihoskan pada Github. Panduan ini wil

Cara Memasang BlogoText CMS pada FreeBSD 11 FAMP VPS

Cara Memasang BlogoText CMS pada FreeBSD 11 FAMP VPS

Menggunakan Sistem Berbeza? BlogoText CMS adalah Sistem Pengurusan Kandungan (CMS) yang mudah dan ringan, percuma dan terbuka dan enjin blog minimalis

Cara Memasang Pagekit 1.0 CMS pada Ubuntu 16.04 LAMP VPS

Cara Memasang Pagekit 1.0 CMS pada Ubuntu 16.04 LAMP VPS

Menggunakan Sistem Berbeza? Pagekit 1.0 CMS adalah Sistem Pengurusan Kandungan (CMS) yang indah, modular, diperluas dan ringan, bebas dan terbuka

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