Stel een Keystone.js-server in met behulp van Nginx Reverse Proxy op Ubuntu 16.04

In deze tutorial gaan we een webserver opzetten met een reverse proxy. Het CMS dat we zullen gebruiken is Keystone.js, een bekend framework voor webtoepassingen gebaseerd op Express.js. De reverse proxy die we zullen gebruiken is Nginx, een gratis en open source reverse proxy, evenals een HTTP-server. De database die we zullen gebruiken is MongoDB, een NoSQL-documentendatabase. Dit vereist dat u een domein heeft met records ingesteld. Als je die set niet hebt, ga je gang en zorg je ervoor en kom terug naar deze tutorial.

Node installeren

Eerst installeren we Node.js, een Javascript-interpreter op basis van de Chrome V8 Javascript-engine.

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

Nginx installeren

Vervolgens installeren we Nginx, onze reverse proxy.

sudo apt update
sudo apt install nginx

Hiermee worden de pakketlijsten bijgewerkt en Nginx geïnstalleerd. Zodra de installatie is voltooid, zullen we ons knooppuntproject opzetten.

Ons Keystone-project initialiseren

Maak ons ​​knooppuntproject. Om dat te doen, maakt u gewoon een nieuwe map.

mkdir website

Vervolgens maken we ons package.jsonbestand aan. Om dat te doen, draait u gewoon npm initin uw terminal, vult u de velden in en antwoordt u " yes" om te bevestigen. Nadat u het package.jsonbestand hebt gemaakt , installeren we de volgende knooppuntmodules.

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

Zodra deze zijn gedownload, voert u het volgende uit.

yo keystone

Vul de verplichte velden in. Het zal u vragen naar de project name, de template engine, emailvoor de controle paneel, en ga zo maar door. Als u niet weet wat u moet selecteren, zijn de standaardinstellingen prima. Nadat u uw keystone-configuratie hebt geconfigureerd, kunnen we testen of onze server actief is door te typen node keystoneom uw applicatie te starten. Standaard wordt uw applicatie uitgevoerd localhostop poort 3000. Merk op dat als u MongoDB niet hebt geïnstalleerd, er niet meteen een database voor u beschikbaar zal zijn. U kunt later in de zelfstudie leren hoe u het kunt installeren.

Hier is de basismaplay-out voor Keystone.js:

  • /lib - Hier slaat u uw aangepaste bibliotheken en andere code op.

  • /models- Hier slaat u de databasemodellen van uw toepassing op. KeystoneJS gebruikt MongoDB als databaseprovider.

  • /public - Hier worden uw statische bestanden (CSS, JS, afbeeldingen, enzovoort) opgeslagen.

  • /routes/api - Hier worden de API-controllers van uw applicatie opgeslagen.

  • /routes.views - Application view-controllers worden hier opgeslagen.

  • /templates - Hier worden alle sjabloonbestanden van uw applicatie opgeslagen.

  • /updates - Hier worden uw migratiescripts opgeslagen.

  • package.json - Dit is uw npm-configuratiebestand dat de generator voor ons heeft gegenereerd.

  • keystone.js - Ons belangrijkste startbestand, we voeren dit uit bij het opstarten van de website.

Onze database initialiseren

Zoals eerder vermeld, is onze database die we zullen gebruiken MongoDB, een betrouwbare NoSQL, documentgerichte database. Als je MongoDB al hebt geïnstalleerd, kun je deze sectie overslaan. Zo niet, dan kunt u het als volgt installeren op Ubuntu 16.04.

Importeer de openbare sleutel die wordt gebruikt voor het mongoDB-pakket.

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

Maak het lijstbestand dat wordt gebruikt om het pakket te installeren.

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

Update uw pakketlijsten met apt.

sudo apt update

Installeer ten slotte MongoDB.

sudo apt install mongodb-org -y

Start MongoDB wanneer deze installatie is voltooid.

sudo service mongod start

Hiermee wordt het MongoDB-proces op de poort gestart 27017.

MongoDB zal in de hele applicatie worden gebruikt en zal worden gebruikt om informatie op te slaan die we voor onze modellen gebruiken, bijvoorbeeld een Usermodel. Keystone gebruikt het als database naar keuze en op dit moment kunt u geen andere database-leveranciers gebruiken.

PM2 installeren

Nu is het tijd om PM2 (Process Manager 2.) te installeren PM2 is een procesmanager voor Node.js-applicaties, in de vorm van een npm-module. Het biedt een gemakkelijke manier om uw applicaties te beheren en op de achtergrond uit te voeren. Omdat het in NPM is, hoeven we alleen het volgende te installeren.

sudo npm install pm2 -g

Dit vertelt npm om het wereldwijd te installeren, zodat we het overal in ons systeem kunnen gebruiken.

Een applicatie uitvoeren / beheren op PM2

Eerder hadden we onze webapplicatie uitgevoerd met node keystone. Met PM2 is het een beetje anders. We voeren nu onze knooppunt-app uit met het volgende.

pm2 start keystone.js

Hiermee wordt onze PM2-toepassing toegevoegd aan onze proceslijst en wordt er een klein vakje weergegeven zodat u kunt zien dat het inderdaad online is. Let op het vak met het label idvoor uw proces. Houd dit in de buurt, daar zullen we later veel verwijzingen naar maken.

Om de logs voor uw applicatie te zien.

pm2 logs [id]

Bijvoorbeeld, pm2 logs 0als dit je eerste PM2 applicatie.

Om uw webapplicatie op elk moment te stoppen.

pm2 stop [id]

Om uw aanvraag volledig te verwijderen.

pm2 delete [id]

PM2 heeft zelfs een bewakingsdashboard als u enkele basisstatistieken voor uw toepassing wilt zien, en u kunt hier toegang toe krijgen.

pm2 monit

Dit toont wat basisinformatie zoals RAM-gebruik, CPU-gebruik en uptime.

Een geweldige functie die PM2 biedt, is watching. In essentie is kijken wanneer PM2 automatisch wijzigingen detecteert in een van de bestanden in dezelfde map als uw startbestand, en het zal uw toepassing automatisch opnieuw opstarten. Om het in te schakelen, start u eenvoudig uw applicatie opnieuw, maar geeft u het een horlogevlag door.

pm2 restart [id] --watch

Om het kijken uit te schakelen nadat het is ingeschakeld, voert u gewoon dezelfde opdracht opnieuw uit en wordt kijken uitgeschakeld.

In deze tutorial laten we het kijken af.

Uw reverse proxy instellen

Zorg ervoor dat je Nginx hebt geïnstalleerd. Als dat om een ​​of andere reden niet zo is, raadpleeg dan de bovenstaande stappen.

Pas uw firewall-instellingen aan. Op Ubuntu ufwis de officiële firewall. Standaard worden verbindingen geblokkeerd op poort 80. We moeten een uitzondering toevoegen voor Nginx on port 80, waarop onze webapplicatie zal draaien.

sudo ufw allow 'Nginx HTTP'

Controleer of uw Nginx-server actief is.

systemctl status nginx

ActiveAls je onder de sectie ziet active (running), ben je helemaal klaar. Zo niet, dan kunt u proberen de service opnieuw op te starten.

systemctl restart nginx

Verwijder het standaard Nginx-configuratiebestand.

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

Maak een nieuwe en noem het gewoon node.

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

Plak het volgende in het bestand en vervang het example.comdoor uw websitedomein.

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

Merk op dat dit proxy_passhet IP-adres aangeeft waarop onze Keystone-app lokaal draait, die zich localhostop de poort bevindt 3000. listen 80is de poort waarnaar we de app willen laten verwijzen, in dit geval poort 80.

Vervolgens moeten we een symlink of symbolische link naar een map met de naam maken sites-enabled. Het verschil tussen sites-enableden sites-availableis dat het sites-enableddaadwerkelijk door Nginx wordt geladen.

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

Nu is uw configuratiebestand sites-availableklaar voor gebruik en wordt het geladen vanaf sites-enabled. Om de configuratie toe te passen zodat deze effect heeft, start u Nginx opnieuw op.

sudo systemctl restart nginx

Start ten slotte uw PM2-toepassing opnieuw op

pm2 restart [id]

Nu kunt u in een browser naar uw domein navigeren en ziet u een Welcome to Keystonescherm met een paneel om in te loggen.

Als je het ziet, dan heb je met succes een Node.js-productiewebserver opgezet. Zo niet, dan heeft u misschien een stap verkeerd gedaan en wilt u misschien teruggaan en elke stap zorgvuldig volgen.

U kunt meer over Nginx leren door hun website te bezoeken .

Ik hoop dat je deze tutorial leuk vond, en ik hoop dat dit je heeft geholpen bij het opzetten van je eigen webserver voor productie op je Vultr VPS.



Leave a Comment

Fuel CMS installeren op Ubuntu 16.04 LTS

Fuel CMS installeren op Ubuntu 16.04 LTS

Gebruikt u een ander systeem? Fuel CMS is een op CodeIgniter gebaseerd contentmanagementsysteem. De broncode wordt gehost op GitHub. Deze gids laat zien hoe t

Hoe Neos CMS op FreeBSD 12 te installeren

Hoe Neos CMS op FreeBSD 12 te installeren

Gebruikt u een ander systeem? Neos is een Content Application Platform met een CMS en een applicatieframework als kern. Deze gids laat u zien hoe u kunt installeren

Couch CMS 2.0 installeren op een Debian 9 LAMP VPS

Couch CMS 2.0 installeren op een Debian 9 LAMP VPS

Gebruikt u een ander systeem? Couch CMS is een eenvoudig en flexibel, gratis en open source Content Management Systeem (CMS) waarmee webdesigners kunnen ontwerpen

Hoe Subrion 4.1 CMS te installeren op een Fedora 26 LAMP VPS

Hoe Subrion 4.1 CMS te installeren op een Fedora 26 LAMP VPS

Gebruikt u een ander systeem? Subrion 4.1 CMS is een krachtig en flexibel open source Content Management Systeem (CMS) dat een intuïtieve en duidelijke inhoud

BigTree CMS installeren op een Ubuntu 16.04 LAMP VPS

BigTree CMS installeren op een Ubuntu 16.04 LAMP VPS

Gebruikt u een ander systeem? BigTree CMS 4.2 is een snel en lichtgewicht, gratis en open source, enterprise-grade content management systeem (CMS) met uitgebreide en

Hoe Couch CMS 2.0 te installeren op een Fedora 26 LAMP VPS

Hoe Couch CMS 2.0 te installeren op een Fedora 26 LAMP VPS

Gebruikt u een ander systeem? Couch CMS is een eenvoudig en flexibel, gratis en open source Content Management Systeem (CMS) waarmee webdesigners kunnen ontwerpen

WonderCMS installeren op Fedora 29

WonderCMS installeren op Fedora 29

Gebruikt u een ander systeem? WonderCMS is een open source, snel en klein, plat bestand CMS geschreven in PHP. WonderCMS-broncode wordt gehost op Github. Deze gids zal

Hoe Neos CMS op Debian 9 te installeren

Hoe Neos CMS op Debian 9 te installeren

Gebruikt u een ander systeem? Neos is een Content Application Platform met een CMS en een applicatieframework als kern. Deze gids laat u zien hoe u kunt installeren

Hoe Alfresco Community Edition op CentOS 7 te installeren

Hoe Alfresco Community Edition op CentOS 7 te installeren

Gebruikt u een ander systeem? Alfresco Community Edition is een open source-versie van de Alfresco Content Services. Het is geschreven in Java en gebruikt PostgreSQL t

BigTree CMS 4.2 installeren op een CentOS 7 LAMP VPS

BigTree CMS 4.2 installeren op een CentOS 7 LAMP VPS

Gebruikt u een ander systeem? BigTree CMS 4.2 is een snel en lichtgewicht, gratis en open source, enterprise-grade Content Management System (CMS) met uitgebreide en

Hoe Omeka Classic 2.4 CMS op een FreeBSD 11 FAMP VPS te installeren

Hoe Omeka Classic 2.4 CMS op een FreeBSD 11 FAMP VPS te installeren

Gebruikt u een ander systeem? Omeka Classic 2.4 CMS is een gratis en open source digitaal publicatieplatform en Content Management System (CMS) voor het delen van digita

Hoe Craft CMS op CentOS 7 te installeren

Hoe Craft CMS op CentOS 7 te installeren

Gebruikt u een ander systeem? Craft CMS is een open source CMS geschreven in PHP. De broncode van Craft CMS wordt gehost op GitHub. Deze gids laat u zien hoe u kunt installeren

Hoe ImpressPages CMS 5.0 op een Debian 9 LAMP VPS te installeren

Hoe ImpressPages CMS 5.0 op een Debian 9 LAMP VPS te installeren

Gebruikt u een ander systeem? ImpressPages CMS 5.0 is een eenvoudig en effectief, gratis en open source, gebruiksvriendelijk, op MVC gebaseerd Content Management Systeem (CMS)

Hoe Automad CMS op CentOS 7 te installeren

Hoe Automad CMS op CentOS 7 te installeren

Gebruikt u een ander systeem? Automad is een open source file-based content management systeem (CMS) en template engine geschreven in PHP. De Automad-broncode i

Directus 6.4 CMS installeren op een FreeBSD 11 FAMP VPS

Directus 6.4 CMS installeren op een FreeBSD 11 FAMP VPS

Gebruikt u een ander systeem? Directus 6.4 CMS is een krachtig en flexibel, gratis en open source Headless Content Management System (CMS) dat ontwikkelaars voorziet

ProcessWire CMS 3.0 installeren op een Ubuntu 16.04 LAMP VPS

ProcessWire CMS 3.0 installeren op een Ubuntu 16.04 LAMP VPS

Gebruikt u een ander systeem? ProcessWire CMS 3.0 is een eenvoudig, flexibel en krachtig, gratis en open source Content Management System (CMS). ProcessWire CMS 3.

Hoe TYPO3 CMS op CentOS 7 te installeren

Hoe TYPO3 CMS op CentOS 7 te installeren

Gebruikt u een ander systeem? TYPO3 is een gratis en open source content management systeem voor bedrijven. Het is geschreven in PHP en gebruikt MySQL om de gegevens op te slaan. TYPFOUT

Hoe Backdrop CMS op een Ubuntu 16.04 LAMP VPS te installeren

Hoe Backdrop CMS op een Ubuntu 16.04 LAMP VPS te installeren

Gebruikt u een ander systeem? Backdrop CMS 1.8.0 is een eenvoudig en flexibel, mobielvriendelijk, gratis en open source Content Management System (CMS) waarmee we

Anchor CMS installeren op CentOS 7

Anchor CMS installeren op CentOS 7

Gebruikt u een ander systeem? Anchor is een lichtgewicht open source blog CMS geschreven in PHP. De broncode van Anchors wordt gehost op GitHub. Deze gids laat je zien ho

Microweber installeren op CentOS 7

Microweber installeren op CentOS 7

Gebruikt u een ander systeem? Microweber is een open source CMS voor slepen en neerzetten en een online winkel. De broncode van Microweber wordt gehost op GitHub. Deze gids zal je laten zien

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek

ReactOS: is dit de toekomst van Windows?

ReactOS: is dit de toekomst van Windows?

ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.

Blijf verbonden via WhatsApp Desktop-app 24 * 7

Blijf verbonden via WhatsApp Desktop-app 24 * 7

WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

Wat is een logboekbestandssysteem en hoe werkt het?

Wat is een logboekbestandssysteem en hoe werkt het?

Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.