Kā iestatīt Koa.js mezgla lietojumprogrammu Ubuntu 16.04 LTS

Šajā apmācībā mēs uzzināsim, kā iestatīt Koa.js tīmekļa lietojumprogrammu ražošanai, izmantojot Node.js. Mēs arī saistīsim parauga domēnu ar apgriezto starpniekserveri, izmantojot Apache, un uzzināsim, kā to pārvaldīt, izmantojot atbilstošu procesu pārvaldnieku. Sāksim bez turpmākas piepūles.

Īss Node.js, Koa.js un Apache apraksts

Node.js ir ātrs, vairāku platformu JavaScript ietvars, kura pamatā ir Chrome V8 dzinējs. To izmanto gan darbvirsmas, gan serveru lietojumprogrammās, un tas ir slavens ar viena pavediena notikumu cilpas apstrādi. Node.js piedāvā pakešu reģistru, ko sauc par mezglu pakotņu pārvaldnieku (NPM), kas mitina vairāk nekā pusmiljonu pakotņu. NPM pakotnes (vai moduļi) ir Node.js galvenais mugurkauls, jo tie ir kopienas vadīti kodi, kas var būt noderīgi jūsu Node.js lietojumprogrammā. Mūsu lietotnē Koa.js Node.js ir tā funkcijas galvenā daļa.

Koa.js ir minimālistisks tīmekļa ietvars, kas izveidots uz Node.js platformas. Tā pati komanda ir izstrādājusi populāro Express.js ietvaru, un tā mērķis ir vēl vairāk samazināt jau tā minimālistisko Express.js ietvaru, izslēdzot starpprogrammatūru no tā pamata. Galvenā Koa.js iezīme ir tā, ka nav atzvanīšanas. Koa.js pamatā ir ES6 ģeneratori un ES6 līdzekļi, piemēram, Promises.

Apache ir populārs atvērtā pirmkoda tīmekļa serveris, ko izmanto kā ļoti vienkāršu sākumpunktu tīmekļa serveriem. Šajā apmācībā mēs izmantosim Apache kā apgriezto starpniekserveri, kas ļaus mums saistīt mūsu lietojumprogrammu ar parauga domēnu. Ja jums nav domēna, šī apmācība joprojām darbosies jūsu labā, ar vienīgo atšķirību, ka vietne darbosies jūsu VPS IP, nevis domēnā.

Node.js iestatīšana

Tāpat kā jebkurā Node.js ietvarā, jums būs jāinstalē Node.js savā VPS. Šīs apmācības nolūkos pieņemšu, ka jūsu sistēmā jau ir instalēts Node.js. Ja nē, varat vienkārši sekot šeit sniegtajiem norādījumiem .

Mūsu lietojumprogrammu direktorija iestatīšana

Mums būs jāizveido mape, kurā būs mūsu lietojumprogrammas galvenie faili.

mkdir site

Jūtieties brīvi aizstāt sitear jebkuru citu nosaukumu, kuru vēlaties direktorijā. Tālāk mums būs jāinicializē mūsu Node.js pakotnes fails. Pārejiet uz tikko izveidoto direktoriju, palaidiet npm initun aizpildiet uzvednes. Galu galā tam vajadzētu izskatīties apmēram šādi:

{
  "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"
}

Koa.js instalēšana

Tagad, kad mūsu direktorijs ir iestatīts, mēs varam turpināt Koa.js instalēšanu. Pašreizējā darba direktorijā /siteierakstiet tālāk norādīto.

npm install koa

Tādējādi Koa.js modulis tiks lejupielādēts no NPM un instalēts mūsu projekta direktorijā turpmākai lietošanai. Pēc tam mēs izveidosim lietojumprogrammas parauga failu, kurā būs mūsu lietotnes kods. Lai to izdarītu, izveidojiet index.jsfailu.

nano index.js

Kad esat failā, izveidojiet lietojumprogrammas paraugu.

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

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

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

Saglabājiet un aizveriet failu. CTRL+ X.

Mēs vēlamies pārliecināties, vai mūsu lietojumprogramma darbojas pareizi. Lai to sāktu, palaidiet node index.js, un jūs redzēsit Website is livekonsolē.

Apache instalēšana

Tagad, kad mēs zinām, ka mūsu vietne darbojas, mēs varam turpināt instalēt Apache un tās atkarības.

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

Lai izmantotu Apache apgriezto starpniekservera funkciju, mums būs jāiespējo nepieciešamie moduļi.

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

Iespējams, ka daži no šiem moduļiem jau ir iespējoti, taču vienmēr ir lietderīgi tos vēlreiz pārbaudīt.

Tagad mums ir jārediģē Apache noklusējuma konfigurācijas fails.

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

Šeit mums būs jāpievieno bloks mūsu lietojumprogrammai.

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

    ServerName localhost
</VirtualHost>

Saglabājiet failu, CTRL+ X.

Jūs varat pamanīt, ka mēs izmantojam portu 3000kā mūsu ProxyPassun ProxyPassReverseIP portu . Tā kā tas ir tas pats ports, kurā darbojas mūsu lietojumprogramma Koa.js, ir obligāti jāievada pareizais ports.

Kad izmaiņas būs ieviestas, mums būs jārestartē Apache un atkārtoti jāpalaiž lietojumprogramma Koa.js.

sudo systemctl restart apache2

Tas nodrošinās, ka mūsu konfigurācijas fails ir aktīvs un gatavs darbam, startējot lietojumprogrammu Koa.js. Kad Apache ir restartēts, dodieties atpakaļ uz vietnes direktoriju un palaidiet lietojumprogrammu Koa.js tāpat kā iepriekš. Tīmekļa pārlūkprogrammā dodieties uz http://yourdomain, vai http://yourip:, un jūs redzēsit "Hello World".

Mūsu lietojumprogrammas pārvaldība, izmantojot systemd

Tagad, kad esam iekļāvuši Koa.js lietojumprogrammas parauga izveides pamatus, mēs saprotam, ka ražošanas vidē lietojumprogrammas palaišana tādā veidā, kāda tā ir pašlaik, ir nepraktiska. Procesa vadītājs noteikti ir prasība. Šeit tiek izmantota systemd. Vienkārši izsakoties, systemd sastāv no programmatūras, kas nodrošina Linux sistēmas pamatelementus. Līdzīgi kā "init", tas nodrošina sistēmu lietotāju procesu pārvaldībai pēc sistēmas palaišanas. Mūsu lietojumprogrammas gadījumā systemd ļauj mums automātiski palaist mūsu vietni pēc sistēmas pārstartēšanas, ja notiek kāds notikums, kas traucē sistēmas darbības laiku. Tas nodrošina arī rīku komplektu, kas var noderēt, pārvaldot mūsu lietojumprogrammu. Labākā daļa ir fakts, ka tas ir iebūvēts Ubuntu 16.04 LTS, tāpēc mums nav jāinstalē papildu programmatūra.

Izveidojiet sistēmisko pakalpojumu

Viss, kas nepieciešams mūsu lietojumprogrammas palaišanai, tiks ietverts failā ar nosaukumu service. Tajā ir informācija par mūsu lietotni, piemēram, tās nosaukums, direktorijs, vide un daudz kas cits. Lai izveidotu mūsu sistēmas failu, atveriet teksta redaktoru.

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

Rediģējiet un saglabājiet failu šādi.

[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

Aizstāt youruserar sava servera lietotājvārdu. Šeit ir īss svarīgu lauku pārskats:

  • After - Tas informē sistēmu, ka pirms mūsu lietojumprogrammas palaišanas ir jāgaida, līdz ir gatavs tīkla interfeiss.
  • Environment- Šeit mēs varam norādīt vides mainīgos mūsu lietojumprogrammai. Mūsu Node.js ports ir viens no tiem.
  • Type - Tas informē sistēmu, ka mūsu lietotni var vienkārši palaist, neizmantojot lietotāja privilēģijas un tamlīdzīgi.
  • User- Tas norāda systemd, ka mēs vēlamies palaist lietojumprogrammu mūsu lietotāja kontā, kas ir ieteicams. Lietojumprogrammu darbināšana kā root lietotājam var novest pie daudziem drošības kompromisiem.
  • ExecStart - Būtībā komanda, kas systemd darbosies, lai palaistu mūsu lietojumprogrammu, līdzīgi tam, kā mēs to iepriekš palaidām manuāli.
  • Restart- norāda sistēmai, kādos apstākļos restartēt mūsu lietojumprogrammu. Šajā gadījumā mēs vēlamies, lai mūsu vietne tiktu restartēta kļūdas gadījumā.

Sāciet sistēmas pakalpojumu

Tagad esam gatavi sākt mūsu sistēmisko pakalpojumu.

sudo systemctl daemon-reload

Tas ir nepieciešams ikreiz, kad mainās sistēmas pakalpojuma fails, lai systemd reģistrētu visas veiktās izmaiņas.

Pēc tam sāciet savu pieteikumu.

sudo systemctl start site

Pārlūkprogrammā vēlreiz pārejiet uz vietni, lai pārbaudītu, vai viss darbojas.

Galvenās sistēmas vadības funkcijas

  • stop - pilnībā aptur lietojumprogrammu.
  • restart - Aptur lietojumprogrammu un palaiž to no jauna saskaņā ar jaunu procesu.
  • enable - Liek sistēmai palaist lietojumprogrammu ikreiz, kad startējat datoru.
  • status - Parāda informāciju par pašlaik darbojošos lietojumprogrammu, piemēram, darbības laiku, lietojumprogrammas stāvokli un daudz ko citu.

Lai izmantotu kādu no šīm funkcijām, izpildiet tālāk norādīto.

systemctl <function> site

Secinājums

Mēs esam veiksmīgi iestatījuši Koa.js lietojumprogrammu un iemācījušies to mainīt starpniekserveri, kā arī pārvaldīt to ar systemd. Tagad esat gatavs paplašināt savu pieteikumu un izmantot šo piemēru. Ja vēlaties uzzināt vairāk par Koa.js un citām iespējām, ko varat darīt, apmeklējiet viņu vietni , lai iegūtu noderīgāku informāciju. Papildus tam, ja vēlaties uzzināt vairāk par systemd procesu pārvaldnieku, izlasiet tā dokumentāciju šeit . Visbeidzot, ja vēlaties uzzināt vairāk par Apache reverso starpniekserveri, pārbaudiet tos šeit .


Statiskā tīkla un IPv6 konfigurēšana operētājsistēmā CentOS 7

Statiskā tīkla un IPv6 konfigurēšana operētājsistēmā CentOS 7

VULTR nesen veica izmaiņas, un tagad visam vajadzētu darboties labi, ja ir iespējots NetworkManager. Ja vēlaties atspējot

Docker CE instalēšana Ubuntu 16.04

Docker CE instalēšana Ubuntu 16.04

Vai izmantojat citu sistēmu? Docker ir lietojumprogramma, kas ļauj izvietot programmas, kas tiek darbinātas kā konteineri. Tas tika uzrakstīts populārajā Go programmā

Netīrās govs eksploīta ielāgošana vietnē CentOS

Netīrās govs eksploīta ielāgošana vietnē CentOS

Kas ir netīrā govs (CVE-2016-5195)? Netīrās govs ievainojamība tiek izmantota, izmantojot to, kā Linux apstrādā kodu. Tas ļauj nepievilinātam lietotājam gai

Iestatiet laika joslu un NTP operētājsistēmā Ubuntu 14.04

Iestatiet laika joslu un NTP operētājsistēmā Ubuntu 14.04

Vultr serveri var nebūt izvietoti ar jūsu serverī nepieciešamo laika joslu/datumu/laiku. Par laimi mēs varam manuāli iestatīt laika joslu, lai novērstu problēmas

Rust instalēšana Ubuntu 14.04

Rust instalēšana Ubuntu 14.04

Rust, plaši pazīstama kā Rust-Lang, ir sistēmas programmēšanas valoda, ko izstrādā Mozilla un atbalsta LLVM. Rūsa ir pazīstama ar programmu novēršanu

Kā instalēt osTicket uz FreeBSD 12

Kā instalēt osTicket uz FreeBSD 12

Vai izmantojat citu sistēmu? osTicket ir atvērtā koda klientu atbalsta biļešu sistēma. osTicket pirmkods ir publiski mitināts vietnē Github. Šajā apmācībā

Darbs ar Linux iespējām

Darbs ar Linux iespējām

Ievads Linux iespējas ir īpaši atribūti Linux kodolā, kas piešķir procesiem un binārajiem izpildāmajiem failiem īpašas privilēģijas, kas ir normālas.

Kā instalēt JuliaLang Ubuntu 17.04

Kā instalēt JuliaLang Ubuntu 17.04

Julia, plaši pazīstama kā JuliaLang, ir programmēšanas valoda skaitliskajai skaitļošanai. Džūlija ir tikpat ātra kā C, taču tas neupurē lasāmību

Augsta pieejamība, izmantojot privāto tīklu Ubuntu 16.04 ar Keepalived

Augsta pieejamība, izmantojot privāto tīklu Ubuntu 16.04 ar Keepalived

Dažām augstas pieejamības arhitektūrām nepieciešama peldoša IP adrese. Šī funkcionalitāte ir pieejama Vultr platformā, tiklīdz ir izveidots privātais tīkls

Iestatiet tikai SFTP lietotāju kontus Ubuntu 14

Iestatiet tikai SFTP lietotāju kontus Ubuntu 14

Ievads Dažos gadījumos ir nepieciešams izveidot lietotājus ar lasīšanas un rakstīšanas piekļuvi vienam direktorijam, tikai izmantojot FTP. Šis raksts jums parādīs, kā t

Kā iestatīt Node.js pastāvīgās lietojumprogrammas Ubuntu 16.04

Kā iestatīt Node.js pastāvīgās lietojumprogrammas Ubuntu 16.04

Node.js lietojumprogrammas ir populāras to mērogošanas spējas dēļ. Vairāku vienlaicīgu procesu palaišana vairākos serveros nodrošina mazāku latentumu un ilgāku darbības laiku

Kā instalēt SuiteCRM operētājsistēmā Ubuntu 16.04

Kā instalēt SuiteCRM operētājsistēmā Ubuntu 16.04

SuiteCRM ir bezmaksas atvērtā koda alternatīva populārajai klientu attiecību pārvaldības (CRM) sistēmai SugarCRM. Tas kļuva populārs, kad SugarCRM nolēma

Kā instalēt Open Eshop operētājsistēmā Ubuntu 16.04

Kā instalēt Open Eshop operētājsistēmā Ubuntu 16.04

Open Eshop ir bezmaksas atvērtā koda e-komercijas programmatūra digitālo preču, piemēram, MP3, e-grāmatu, filmu, programmatūras un daudz ko citu, pārdošanai. Šajā apmācībā mēs vēlēsimies

Instalējiet NixOS vietnē Vultr

Instalējiet NixOS vietnē Vultr

NixOS ir tīri funkcionāls Linux izplatīšana. To var atrast vietnē nixos.org. Galvenais NixOS izmantošanas iemesls ir tas, ka tas ir pilnībā deklaratīvs, kas padara

Instalējiet Nginx + PHP FPM + Caching + MySQL Ubuntu 12.04

Instalējiet Nginx + PHP FPM + Caching + MySQL Ubuntu 12.04

Iespējams, daudzi cilvēki izmantos savus Vultr VPS kā tīmekļa serverus, laba izvēle būtu Nginx kā tīmekļa serveris. Šajā tēmā es aprakstīšu o

Hosts faila izmantošana vietņu pārbaudei

Hosts faila izmantošana vietņu pārbaudei

Hosts fails ir īpašs fails jūsu darbstacijas datorā, kurā tiks saglabāta IP un nosaukuma informācija. Šis fails tiek pārbaudīts pirms DNS, tādēļ, ja ievietojat a

Kā instalēt Xubuntu darbvirsmu Vultr serveros, izmantojot Ubuntu 15.10

Kā instalēt Xubuntu darbvirsmu Vultr serveros, izmantojot Ubuntu 15.10

Xubuntu ir XFCE + Ubuntu! XFCE ir viegla Ubuntu GUI/darbvirsma. Vultr serveriem ir nepieciešamas papildu atkarības, kas pēc noklusējuma nav instalētas

Iestatīšana ļauj šifrēt ar Lighttpd Ubuntu 16.04

Iestatīšana ļauj šifrēt ar Lighttpd Ubuntu 16.04

Ievads Let's Encrypt ir sertifikācijas iestāde (CA), kas izsniedz bezmaksas SSL/TLS sertifikātus. Lighttpd ir viegls tīmekļa serveris, kas darbojas uz lo

Apache optimizācija zemas klases VPS operētājsistēmā Ubuntu 14.04

Apache optimizācija zemas klases VPS operētājsistēmā Ubuntu 14.04

Apache ir ļoti viegli instalēt un inicializēt, taču tas ir aprīkots ar daudziem iepriekš instalētiem moduļiem, kā rezultātā, palaižot, var rasties veiktspējas problēmas.

Kā novērst vienlaicīgus savienojumus operētājsistēmā Linux, izmantojot IPTables

Kā novērst vienlaicīgus savienojumus operētājsistēmā Linux, izmantojot IPTables

iptables ir ugunsmūra programmatūra, ko var atrast daudzos izplatījumos, tostarp CentOS un Ubuntu. Šajā dokumentā jūs redzēsit, kā jūs varat novērst vienlaicīgumu

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mākslīgais intelekts nav nākotnē, tas ir šeit, tagadnē. Šajā emuārā lasiet, kā mākslīgā intelekta lietojumprogrammas ir ietekmējušas dažādas nozares.

DDOS uzbrukumi: īss pārskats

DDOS uzbrukumi: īss pārskats

Vai arī jūs esat DDOS uzbrukumu upuris un esat neizpratnē par profilakses metodēm? Izlasiet šo rakstu, lai atrisinātu savus jautājumus.

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Iespējams, esat dzirdējuši, ka hakeri pelna daudz naudas, bet vai esat kādreiz domājuši, kā viņi nopelna šādu naudu? pārrunāsim.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Vai vēlaties redzēt revolucionārus Google izgudrojumus un to, kā šie izgudrojumi mainīja katra cilvēka dzīvi mūsdienās? Pēc tam lasiet emuārā, lai redzētu Google izgudrojumus.

Piektdiena: kas notika ar AI vadītām automašīnām?

Piektdiena: kas notika ar AI vadītām automašīnām?

Pašpiedziņas automobiļu koncepcija izbraukt uz ceļiem ar mākslīgā intelekta palīdzību ir mūsu sapnis jau kādu laiku. Bet, neskatoties uz vairākiem solījumiem, tie nekur nav redzami. Lasiet šo emuāru, lai uzzinātu vairāk…

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Zinātnei strauji attīstoties, pārņemot lielu daļu mūsu pūļu, palielinās arī risks pakļaut sevi neizskaidrojamai singularitātei. Izlasiet, ko singularitāte varētu nozīmēt mums.

Datu glabāšanas evolūcija – infografika

Datu glabāšanas evolūcija – infografika

Datu uzglabāšanas metodes ir attīstījušās kopš datu dzimšanas. Šajā emuārā ir aprakstīta datu uzglabāšanas attīstība, pamatojoties uz infografiku.

Lielo datu atsauces arhitektūras slāņu funkcijas

Lielo datu atsauces arhitektūras slāņu funkcijas

Lasiet emuāru, lai vienkāršākā veidā uzzinātu dažādus lielo datu arhitektūras slāņus un to funkcijas.

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

Šajā digitālajā pasaulē viedās mājas ierīces ir kļuvušas par būtisku dzīves sastāvdaļu. Šeit ir daži pārsteidzoši viedo mājas ierīču ieguvumi, lai padarītu mūsu dzīvi dzīves vērtu un vienkāršāku.

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

Nesen Apple izlaida macOS Catalina 10.15.4 papildinājuma atjauninājumu, lai novērstu problēmas, taču šķiet, ka atjauninājums rada vairāk problēmu, kas izraisa Mac datoru bloķēšanu. Izlasiet šo rakstu, lai uzzinātu vairāk