Koa.js sõlmerakenduse seadistamine Ubuntu 16.04 LTS-is

Selles õpetuses õpime, kuidas seadistada Koa.js veebirakendust Node.js-i abil tootmiseks. Samuti linkime näidisdomeeni pöördpuhverserveriga, kasutades Apache'i, ja õpime, kuidas seda korraliku protsessihalduriga hallata. Ilma pikema jututa alustame.

Node.js, Koa.js ja Apache lühikirjeldus

Node.js on kiire, platvormideülene JavaScripti raamistik, mis põhineb Chrome'i V8 mootoril. Seda kasutatakse nii töölaua- kui ka serverirakendustes ning see on kuulus oma ühe lõimega sündmusteahela käsitlemise poolest. Node.js sisaldab pakettide registrit nimega Node Package Manager (NPM), mis majutab üle poole miljoni paketi. NPM-paketid (või moodulid) on Node.js-i põhiline selgroog, kuna need on kogukonna juhitud kood, mis võib teie Node.js-i rakenduses kasulik olla. Meie rakenduses Koa.js on Node.js selle funktsiooni põhiosa.

Koa.js on minimalistlik veebiraamistik, mis on üles ehitatud Node.js platvormile. Populaarse Express.js raamistiku taga oleva sama meeskonna poolt loodud selle eesmärk on niigi minimalistlikku Express.js raamistikku veelgi minimeerida, jättes selle tuumast välja vahevara. Koa.js-i peamine omadus on see, et tagasihelistamisi pole. Koa.js on üles ehitatud ES6-põhistele generaatoritele ja ES6 funktsioonidele, nagu Promises.

Apache on populaarne avatud lähtekoodiga veebiserver, mida kasutatakse veebiserverite jaoks väga lihtsa lähtepunktina. Selles õpetuses kasutame Apache'i pöördpuhverserverina, mis võimaldab meil linkida oma rakenduse näidisdomeeniga. Kui teil pole domeeni, töötab see õpetus endiselt teie jaoks, ainsa erinevusega, et veebisait töötab teie VPS-i IP-aadressil, mitte domeenil.

Node.js seadistamine

Nagu iga Node.js raamistiku puhul, peate installima Node.js'i oma VPS-i. Selle õpetuse huvides eeldan, et teie süsteemis on Node.js juba installitud. Kui ei ole, siis saad lihtsalt järgige siin .

Meie rakenduste kataloogi seadistamine

Peame looma kausta, mis sisaldab meie rakenduse põhifaile.

mkdir site

Asendage julgelt sitemis tahes muu nimega, mida soovite kataloogis kasutada. Järgmiseks peame lähtestama paketifaili Node.js. Minge äsja loodud kataloogi, käivitage npm initja täitke juhised. Lõpuks peaks see välja nägema umbes selline:

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

Nüüd, kui oleme oma kataloogi seadistanud, saame jätkata Koa.js installimist. Tippige praegusesse töökataloogi /sitejärgmine tekst.

npm install koa

See laadib mooduli Koa.js NPM-ist alla ja installib selle edaspidiseks kasutamiseks meie projektikataloogi. Järgmisena loome oma näidisrakenduse faili, mis sisaldab meie rakenduse koodi. Selleks looge index.jsfail.

nano index.js

Kui olete faili sees, looge näidisrakendus.

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

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

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

Salvestage ja sulgege fail. CTRL+ X.

Tahame veenduda, et meie rakendus töötab korralikult. Selle käivitamiseks käivitage node index.jsja näete Website is livekonsoolis.

Apache installimine

Nüüd, kui teame, et meie veebisait töötab, saame jätkata Apache'i ja selle sõltuvuste installimist.

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

Apache'is leiduva pöördpuhverserveri funktsiooni kasutamiseks peame lubama vajalikud moodulid.

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

Mõned neist moodulitest võivad olla juba lubatud, kuid alati on hea neid üle kontrollida.

Nüüd peame muutma Apache'i vaikekonfiguratsioonifaili.

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

Siin peame oma rakenduse jaoks lisama ploki.

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

    ServerName localhost
</VirtualHost>

Salvestage fail, CTRL+ X.

Võite märgata, et kasutame 3000oma ProxyPassja ProxyPassReverseIP pordina porti . Kuna see on sama port, millel meie rakendus Koa.js töötab, on hädavajalik sisestada õige port.

Kui muudatused on paigas, peame taaskäivitama Apache ja taaskäivitama rakenduse Koa.js.

sudo systemctl restart apache2

See tagab, et meie konfiguratsioonifail on rakenduse Koa.js käivitamisel aktiivne ja töövalmis. Kui Apache on taaskäivitatud, liikuge tagasi oma saidi kataloogi ja käivitage rakendus Koa.js nagu varem. Liikuge oma veebibrauseris aadressile http://yourdomainvõi http://yourip:ja näete "Tere maailm".

Meie rakenduse haldamine süsteemiga

Nüüd, kui oleme käsitlenud Koa.js-i näidisrakenduse loomise põhitõdesid, mõistame, et tootmiskeskkonnas on rakenduse käivitamine praegusel kujul ebapraktiline. Protsessijuht on kindlasti nõutav. Siin tulebki mängu systemd. Lihtsamalt öeldes koosneb systemd tarkvarast, mis pakub Linuxi süsteemi ehitusplokke. Sarnaselt "initiga" pakub see süsteemi kasutajaprotsesside haldamiseks pärast süsteemi käivitamist. Meie rakenduse puhul võimaldab systemd meil oma veebisaiti automaatselt käivitada pärast süsteemi taaskäivitamist, kui peaks juhtuma sündmus, mis häirib süsteemi tööaega. See pakub ka tööriistade komplekti, mis võivad meie rakenduse haldamisel abiks olla. Parim osa on asjaolu, et see on sisse ehitatud Ubuntu 16.04 LTS-i, nii et me ei pea installima täiendavat tarkvara.

Looge süsteemne teenus

Kõik, mida vajame rakenduse käivitamiseks, sisaldub failis nimega service. See sisaldab üksikasju meie rakenduse kohta, nagu selle nimi, kataloog, keskkond ja palju muud. Süsteemifaili loomiseks avage tekstiredaktor.

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

Muutke ja salvestage fail nii.

[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

Asenda youruseroma serveri kasutajanimega. Siin on lühike ülevaade olulistest väljadest:

  • After - See teavitab süsteemi enne rakenduse käivitamist ootama, kuni võrguliides on valmis.
  • Environment- Siin saame oma rakenduse jaoks määrata keskkonnamuutujad. Meie Node.js-port on üks neist.
  • Type - See annab süsteemile teada, et meie rakendust saab lihtsalt käivitada, ilma kasutajaõigusi ja muud sellist kasutamata.
  • User- See annab süsteemile teada, et soovime rakendust käitada oma kasutajakonto all, mis on soovitatav. Rakenduste käivitamine juurkasutajana võib viia paljude turvaprobleemideni.
  • ExecStart - Põhimõtteliselt käsk, mida systemd käivitab meie rakenduse käivitamiseks, sarnaselt sellele, kuidas me seda varem käsitsi käivitasime.
  • Restart- Teatab süsteemile, millistel tingimustel meie rakendus taaskäivitada. Sel juhul soovime, et meie veebisait tõrke korral taaskäivitaks.

Käivitage süsteemne teenus

Oleme nüüd valmis oma süsteemset teenust käivitama.

sudo systemctl daemon-reload

See on vajalik iga kord, kui süsteemi teenusefail muutub, et systemd registreeriks kõik uued tehtud muudatused.

Seejärel käivitage rakendus.

sudo systemctl start site

Liikuge oma brauseris uuesti saidile, et kontrollida, kas kõik töötab.

Põhilised süsteemihaldusfunktsioonid

  • stop - Peatab rakenduse täielikult.
  • restart - Peatab rakenduse ja käivitab selle uuesti uue protsessi käigus.
  • enable - käsib süsteemil käivitada rakenduse alati, kui arvuti käivitate.
  • status - Näitab teavet praegu töötava rakenduse kohta, nagu tööaeg, rakenduse olek ja palju muud.

Nende funktsioonide kasutamiseks käivitage järgmine.

systemctl <function> site

Järeldus

Oleme edukalt seadistanud rakenduse Koa.js ja õppinud, kuidas seda puhverserverit tagasi pöörata, samuti hallata seda süsteemiga. Nüüd olete valmis oma rakendust laiendama ja sellele näitele tuginema. Kui soovite saada lisateavet Koa.js-i ja muude asjade kohta, mida saate teha, külastage abistava teabe saamiseks nende veebisaiti . Lisaks sellele, kui soovite systemd protsessihalduri kohta rohkem teada saada, lugege selle dokumentatsiooni siit . Lõpuks, kui soovite Apache'i pöördpuhverserveri kohta lisateavet, vaadake neid siin .


Seadistage Cacti Debian Jessies

Seadistage Cacti Debian Jessies

Sissejuhatus Cacti on avatud lähtekoodiga seire- ja graafikutööriist, mis põhineb täielikult RRD andmetel. Cacti kaudu saate jälgida peaaegu igat tüüpi seadmeid

Installige Lets Encrypt SSL ühe klõpsuga WordPressi rakendusse

Installige Lets Encrypt SSL ühe klõpsuga WordPressi rakendusse

Sissejuhatus Lets Encrypt on sertifikaatide väljastamise teenus, mis pakub tasuta TLS/SSL-sertifikaate. Paigaldusprotsessi lihtsustab Certbot,

Tekkiti klassikalise serveri seadistamine Ubuntu 16.10-s

Tekkiti klassikalise serveri seadistamine Ubuntu 16.10-s

Kas kasutate teistsugust süsteemi? Mis on Tekkit Classic? Tekkit Classic on modifikatsioonipakett mängule, mida kõik teavad ja armastavad; Minecraft. See sisaldab mõningaid ver

Seadistage iRedMail Debian Wheezys

Seadistage iRedMail Debian Wheezys

Kas kasutate teistsugust süsteemi? See õpetus näitab teile, kuidas installida grupitöö iRedMail Debian Wheezy värskele installile. Peaksite kasutama servi

Jekylli ajaveebi loomine Ubuntus 16.04

Jekylli ajaveebi loomine Ubuntus 16.04

Kas kasutate teistsugust süsteemi? Jekyll on suurepärane alternatiiv WordPressile ajaveebi pidamiseks või sisu jagamiseks. See ei nõua andmebaase ja see on väga lihtne

Järelevalveta versiooniuuenduste seadistamine Debian 9-s (venitamine)

Järelevalveta versiooniuuenduste seadistamine Debian 9-s (venitamine)

Kas kasutate teistsugust süsteemi? Kui ostate Debiani serveri, peaksid teil alati olema uusimad turvapaigad ja värskendused, olenemata sellest, kas magate või mitte

PHP 7.0 või PHP 7.1 installimine ja konfigureerimine Ubuntu 16.04-s

PHP 7.0 või PHP 7.1 installimine ja konfigureerimine Ubuntu 16.04-s

PHP ja sellega seotud paketid on veebiserveri juurutamisel kõige sagedamini kasutatavad komponendid. Selles artiklis õpime, kuidas seadistada PHP 7.0 või PHP 7.1 o

Kuidas installida CentOS-i Squid Proxy

Kuidas installida CentOS-i Squid Proxy

Squid on populaarne tasuta Linuxi programm, mis võimaldab teil luua edastamise veebipuhverserveri. Selles juhendis näete, kuidas installida Squid CentOS-i, et teid pöörata

Lighttpd (LLMP Stack) installimine CentOS 6-sse

Lighttpd (LLMP Stack) installimine CentOS 6-sse

Sissejuhatus Lighttpd on Apache'i hark, mille eesmärk on olla palju vähem ressursimahukas. See on kerge, sellest ka oma nimi, ja seda on üsna lihtne kasutada. Installin

Kolm tasuta serveri juhtpaneeli (kiire installimine)

Kolm tasuta serveri juhtpaneeli (kiire installimine)

1. Virtualmin/Webmin Virtualmin on võimas ja paindlik veebimajutuse juhtpaneel Linuxi ja UNIX süsteemidele, mis põhineb tuntud avatud lähtekoodiga veebibaasil

Yii rakenduse seadistamine Ubuntu 14.04-s

Yii rakenduse seadistamine Ubuntu 14.04-s

Yii on PHP raamistik, mis võimaldab teil rakendusi kiiremini ja lihtsamalt arendada. Yii installimine Ubuntule on lihtne, nagu saate täpselt teada

Ekraani kasutamine Ubuntu 14.04-s

Ekraani kasutamine Ubuntu 14.04-s

Ekraan on rakendus, mis võimaldab ühes aknas mitut terminaliseanssi kasutada. See võimaldab simuleerida mitut terminali akent, kus see ma

Seadistage Debianis/Ubuntus oma DNS-server

Seadistage Debianis/Ubuntus oma DNS-server

See õpetus selgitab, kuidas seadistada DNS-serverit Bind9 abil Debianis või Ubuntus. Asendage kogu artikli vältel oma-domeen-nimi.com vastavalt. Kell th

Logrotate kasutamine logifailide haldamiseks

Logrotate kasutamine logifailide haldamiseks

Sissejuhatus Logrotate on Linuxi utiliit, mis lihtsustab logifailide haldamist. Tavaliselt töötab see kord päevas cron-töö kaudu ja haldab logibaasi

Staatilise võrgu ja IPv6 konfigureerimine CentOS 7-s

Staatilise võrgu ja IPv6 konfigureerimine CentOS 7-s

VULTR on hiljuti teinud nende osas muudatusi ja kõik peaks nüüd töötama hästi, kui NetworkManager on lubatud. Kui soovite keelata

Icinga2 muutmine, et kasutada CentOS 6 või CentOS 7 põhi-/kliendimudelit

Icinga2 muutmine, et kasutada CentOS 6 või CentOS 7 põhi-/kliendimudelit

Icinga2 on võimas seiresüsteem ja kui seda kasutatakse põhikliendi mudelis, võib see asendada vajaduse NRPE-põhiste seirekontrollide järele. Meister-klient

Seadistage Red5 Media Server versioonis Ubuntu 16.04

Seadistage Red5 Media Server versioonis Ubuntu 16.04

Kas kasutate teistsugust süsteemi? Red5 on Java-s realiseeritud avatud lähtekoodiga meediumiserver, mis võimaldab käivitada mitme kasutajaga Flashi rakendusi, näiteks otseülekandeid.

Kompileerige ja installige Nginx mooduliga PageSpeed ​​Debian 8

Kompileerige ja installige Nginx mooduliga PageSpeed ​​Debian 8

Selles artiklis näeme, kuidas kompileerida ja installida Nginxi põhiliini ametlikest Nginxi allikatest mooduliga PageSpeed, mis võimaldab teil

Apache Cassandra 3.11.x installimine Ubuntu 16.04 LTS-i

Apache Cassandra 3.11.x installimine Ubuntu 16.04 LTS-i

Kas kasutate teistsugust süsteemi? Apache Cassandra on tasuta ja avatud lähtekoodiga NoSQL-i andmebaasihaldussüsteem, mis on loodud pakkuma skaleeritavust, hig.

Apache Cassandra 3.11.x installimine opsüsteemi CentOS 7

Apache Cassandra 3.11.x installimine opsüsteemi CentOS 7

Kas kasutate teistsugust süsteemi? Apache Cassandra on tasuta ja avatud lähtekoodiga NoSQL-i andmebaasihaldussüsteem, mis on loodud pakkuma skaleeritavust, hig.

Masinate tõus: AI tegelikud rakendused

Masinate tõus: AI tegelikud rakendused

Tehisintellekt ei ole tulevik, see on siin, olevikus. Sellest blogist loe, kuidas tehisintellekti rakendused on mõjutanud erinevaid sektoreid.

DDOS-i rünnakud: lühike ülevaade

DDOS-i rünnakud: lühike ülevaade

Kas olete ka DDOS-i rünnakute ohver ja olete segaduses ennetusmeetodite osas? Oma päringute lahendamiseks lugege seda artiklit.

Kas olete kunagi mõelnud, kuidas häkkerid raha teenivad?

Kas olete kunagi mõelnud, kuidas häkkerid raha teenivad?

Võib-olla olete kuulnud, et häkkerid teenivad palju raha, kuid kas olete kunagi mõelnud, kuidas nad sellist raha teenivad? arutleme.

Googlei revolutsioonilised leiutised, mis muudavad teie elu lihtsaks.

Googlei revolutsioonilised leiutised, mis muudavad teie elu lihtsaks.

Kas soovite näha Google'i revolutsioonilisi leiutisi ja seda, kuidas need leiutised muutsid iga inimese elu tänapäeval? Seejärel lugege ajaveebi, et näha Google'i leiutisi.

Reede oluline osa: mis juhtus tehisintellektiga juhitavate autodega?

Reede oluline osa: mis juhtus tehisintellektiga juhitavate autodega?

Isejuhtivate autode kontseptsioon tehisintellekti abil teedele jõudmiseks on meil juba mõnda aega unistus. Kuid vaatamata mitmele lubadusele pole neid kusagil näha. Lisateabe saamiseks lugege seda ajaveebi…

Tehnoloogiline singulaarsus: inimtsivilisatsiooni kauge tulevik?

Tehnoloogiline singulaarsus: inimtsivilisatsiooni kauge tulevik?

Kuna teadus areneb kiiresti, võttes üle suure osa meie jõupingutustest, suureneb ka oht, et allume seletamatule singulaarsusele. Loe, mida singulaarsus meie jaoks tähendada võiks.

Andmesalvestuse areng – infograafik

Andmesalvestuse areng – infograafik

Andmete säilitamise meetodid on arenenud alates andmete sünnist. See ajaveeb käsitleb infograafiku alusel andmete salvestamise arengut.

Suurandmete viitearhitektuuri kihtide funktsioonid

Suurandmete viitearhitektuuri kihtide funktsioonid

Lugege ajaveebi, et kõige lihtsamal viisil teada saada Big Data Architecture'i erinevaid kihte ja nende funktsioone.

6 hämmastavat eelist nutikate koduseadmete olemasolust meie elus

6 hämmastavat eelist nutikate koduseadmete olemasolust meie elus

Selles digipõhises maailmas on nutikad koduseadmed muutunud elu oluliseks osaks. Siin on mõned nutikate koduseadmete hämmastavad eelised, mis muudavad meie elu elamisväärseks ja lihtsamaks.

macOS Catalina 10.15.4 täienduse värskendus põhjustab rohkem probleeme kui lahendamine

macOS Catalina 10.15.4 täienduse värskendus põhjustab rohkem probleeme kui lahendamine

Hiljuti andis Apple välja macOS Catalina 10.15.4 täiendusvärskenduse probleemide lahendamiseks, kuid tundub, et värskendus põhjustab rohkem probleeme, mille tulemuseks on Maci masinate tellimine. Lisateabe saamiseks lugege seda artiklit