Installer Plesk på CentOS 7
Bruger du et andet system? Plesk er et proprietært webhost kontrolpanel, der giver brugerne mulighed for at administrere deres personlige og/eller klienters websteder, databaser
I denne vejledning lærer du, hvordan du opsætter en komplet RESTful API, som vil betjene HTTP-anmodninger ved hjælp af Node.js og Express, mens du omvendt proxyerer den med NGINX, på Ubuntu 16.04 LTS. Vi vil bruge en applikation kaldet Postmand, et meget velkendt API-udviklingsværktøj, til at teste vores API og sikre, at det er fuldt funktionelt og fungerer korrekt. Node.js er en hurtig JavaScript-ramme på tværs af platforme baseret på Chromes V8-motor. Den bruges i både desktop- og serverapplikationer og er berømt for sin enkelttrådede hændelsesløkkehåndtering. Vi vil bruge Node.js som backend til vores RESTful API, bundtet med Express.js, vores webapplikationsramme bygget til Node.js. Express.js udgives som gratis og åben software. Express er server-side, skrevet i JavaScript, og er designet til at bygge API'er, hvilket gør det perfekt til vores projekt. På den anden side er Postman en meget kraftfuld HTTP-klient med API-udvikling i tankerne. Den indeholder alle de værktøjer, du kunne ønske dig til API-udvikling.
Først vil du gå over til Postmans hjemmeside og downloade og installere Postman til din primære pc (ikke din server). Alle installationsvejledninger vil være på deres hjemmeside.
For at begynde skal vi først installere Node.js, så vi kan begynde at udvikle vores API. Vi vil downloade og installere Node.js fra den officielle hjemmeside.
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
Derudover vil du også gerne have fat i de nødvendige byggeværktøjer, som vil være nyttige ved kompilering af moduler.
sudo apt-get install build-essential
Til denne tutorial vil vi bruge LTS-versionen af Node.js, som er version 8.9.3.
Vi bliver nødt til at initialisere et nyt Node.js-projekt, som vil indeholde en applikation. For at gøre det skal du oprette en ny mappe.
mkdir expressapi
Skift til den nye mappe. Når du er inde, skal du køre npm init
og udfylde alle de nødvendige prompter. Vær opmærksom på "indgangspunktet" for din ansøgning: du vil oprette denne fil senere. Når du er færdig, vil du se en package.json
fil i din nuværende mappe. Det fungerer som en beskrivelse af vores projekt og viser alle de afhængigheder, der er nødvendige for at fungere.
Nu vil vi konfigurere Express.js og dets afhængigheder.
npm install express
Installationsprocessen begynder. Det vil tage et par minutter, før alt er downloadet.
Dernæst vil vi oprette vores primære startfil til vores API. Her vil du bruge "indgangspunktet", du så i package.json
filen. Af hensyn til denne tutorial vil jeg bruge standardnavneskemaet, index.js
.
touch index.js
Åbn den derefter i nano-teksteditoren.
nano index.js
I vores hovedfil vil vi først ringe til alle vores hovedpakker og registrere vores ruter.
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var port = process.env.PORT || 8080;
const router = express.Router();
router.get('/', function(req, res) {
res.json({ message: 'API is Online!' });
});
app.use('/api', router);
app.listen(port);
console.log('Listening on port ' + port);
Grundlæggende er det, vi gør her, at initialisere vores app og opsætte en grundlæggende router til vores API. Bemærk, at vi indstiller vores applikations port til 8080
. Vi skal bruge dette nummer, når vi konfigurerer vores RESTful API. Nu er vi klar til at gå videre og teste vores API.
Kør følgende i projektbiblioteket.
node <filename>.js
Dette vil starte API'en, hvor <filename>
er startfilen, du har angivet i package.json
filen. Åbn derefter Postman på din pc/Mac, og klik på knappen " New
" i øverste højre hjørne, og klik derefter på " Request
". Når du er der, bør du se en bjælke, der siger " GET
" ud for den. Her indtaster vi vores anmodnings-URL. Indtast blot følgende i sektionen for anmodnings-URL og klik på " Send
".
`http://your-server-ip:3000/api`
Du vil se " 'API is online'
".
Til at håndtere ruter vil vi bruge Express-routeren. Hvis du ikke ved, hvad en router er, er det i bund og grund, hvordan applikationsendepunkter reagerer på klientanmodninger. Her er de ruter, vi vil opsætte som et eksempel:
/api/numbers
- Viser alle tal fra 1-10.
/api/letters
- Viser alle bogstaver fra AZ.
Nu vil vi opsætte vores første rute-middleware-struktur, som sådan.
router.use(function(req, res, next) {
console.log('We've got something.');
next() //calls next middleware in the application.
});
router.route('/numbers/:number').get((req, res) => {
res.json({result: req.params.number + 1})
});
I dette eksempel opretter vi en situation, hvor en bruger kan anmode om summen af et tal + 1 ved at angive ordformen af det ved hjælp af GET-metoden. Vi bruger router.route()
funktionen til at pege på hvilket nummer vi vil sende tilbage som følge heraf. Parametre er navngivet med et " :
" foran dem. Vi tilgår disse parametre via req.params
.
Her er et eksempel med bogstaver.
router.route('/letters/:letter').get((req, res) => {
res.json({result: req.params.letter.toUpperCase()})
});
Vi bruger samme metode som ovenfor, men vi sender brevet tilbage med stort.
NGINX er en velkendt open source-software, der bruges til webservering, omvendte proxyer, streaming og mere. Vi vil bruge NGINX til at reversere proxy vores API, for at tillade os at køre det på port 80
, fordi Node.js ikke tillader forbindelser på porte mindre end 1024 uden root-adgang. Dette kan være nyttigt, når du linker dit domæne til din server.
For at begynde at installere NGINX skal du køre følgende i din terminal og vente på, at installationen er fuldført.
sudo apt-get install nginx
Dernæst vil vi oprette vores webstedsfil, som NGINX vil bruge til at vende proxy vores app.
sudo nano /etc/nginx/sites-available-api.js
Udfyld filen med følgende, og derefter CTRL+ for Oat gemme den.
server {
listen 80;
location / {
proxy_set_header X-Real-IP
$remote_addr;
proxy_set_header
X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_set_header Host
$http_host;
proxy_set_header
X-NginX-Proxy true; proxy_pass
http://127.0.0.1:8080/;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade
$http_upgrade;
proxy_set_header Connection
"upgrade";
proxy_redirect off;
proxy_set_header
X-Forwarded-Proto $scheme;
}
}
Ved at bruge den samme port, som vi kørte vores applikation på tidligere, beder vi Nginx om at omdirigere alle anmodninger fra vores IP-adresse på port 80
til vores API, der kører på port 8080
.
Aktiver derefter den omvendte proxy ved at symlinke vores nyoprettede fil til sites-available
mappen:
sudo ln -s /etc/nginx/sites-available/api /etc/nginx/sites-available
Dette vil sikre, at NGINX vil reversere proxy vores API.
Når vi har afsluttet vores NGINX-konfiguration, starter vi NGINX og starter derefter vores API. Genstart først NGINX.
sudo systemctl restart nginx
Skift derefter tilbage til din API-mappe, og start den.
node <filename>.js
Applikationen kører på port 80
. Kør blot testen fra oven med Postman for at sikre, at alt fungerer korrekt.
I et produktionsmiljø vil du gerne sikre dig, at du har en procesleder til dine Node-applikationer, for at sikre, at de forbliver kørende for evigt i baggrunden. I denne vejledning vil vi bruge en procesmanager kaldet PM2 (Process Manager 2), som er en procesmanager for Node.js-applikationer, der vil holde dem i live for evigt med minimal nedetid. PM2 kommer med mange nyttige administrationsværktøjer, såsom stop, genindlæsning, pause og mere. For at installere PM2 skal du skrive følgende og vente på, at den installeres.
sudo npm install pm2 -g
Når det er installeret, skal du bare sørge for, at du er i projektbiblioteket, skrive følgende, og applikationen vil blive startet.
pm2 start <filename>.js
Som nævnt tidligere har PM2 nogle nyttige værktøjer, som du kan bruge til bedre at administrere din applikation.
pm2 stop
- Som navnet antyder, giver dette dig mulighed for at stoppe den aktuelt kørende applikation og dræbe dens proces. Hvis din applikation giver et uventet resultat, vil det være nyttigt at stoppe den.
pm2 list
- Listefunktionen giver dig mulighed for at se alle de aktuelt kørende applikationer via PM2, kortlagt efter deres navne. Hvis du hurtigt skal tjekke din applikations oppetid, bør du bruge dette værktøj.
pm2 restart
- Hvis din applikation fryser af en eller anden grund, og du gerne vil genindlæse den, gør pm2 genstart netop det. Det vil dræbe ansøgningsprocessen og starte den igen under en anden proces.
pm2 monit
- PM2's indbyggede monitorværktøj giver dig mulighed for at se en graf over din applikations specifikke detaljer, såsom CPU/RAM-brug, i en brugervenlig graf i ncurses-stil. Dette er nyttigt, hvis du gerne vil have et visuelt billede af din applikations belastning.
Vi har nu fuldført vores opgave med at skabe en RESTful API ved at bruge Node.js, Express og omvendt proxying med NGINX. Du er velkommen til at udvide denne tutorial. Du kan gøre mange gode ting med din nye API, såsom tilføje autentificeringsmetoder, en database, bedre rute- og fejlhåndtering og meget, meget mere. Hvis du har et domæne, med en "A"-record allerede sat op til din IP-adresse, så vil du være i stand til at få adgang til din API fra dit domæne. Hvis du vil lære mere om Express.js, kan du besøge deres hjemmeside på http://expressjs.com . Besøg http://nginx.com for at lære mere om NGINX og omvendt proxy . For at læse mere om PM2, besøg deres side på http://pm2.keymetrics.io .
Bruger du et andet system? Plesk er et proprietært webhost kontrolpanel, der giver brugerne mulighed for at administrere deres personlige og/eller klienters websteder, databaser
Bruger du et andet system? Hvis du køber en Debian-server, bør du altid have de nyeste sikkerhedsrettelser og opdateringer, uanset om du sover eller ej
Squid er et populært, gratis Linux-program, der giver dig mulighed for at oprette en webproxy til videresendelse. I denne vejledning vil du se, hvordan du installerer Squid på CentOS for at gøre dig
Denne vejledning forklarer, hvordan man opsætter en DNS-server ved hjælp af Bind9 på Debian eller Ubuntu. Gennem hele artiklen skal du erstatte dit-domænenavn.com i overensstemmelse hermed. Ved th
Bruger du et andet system? Red5 er en open source medieserver implementeret i Java, der giver dig mulighed for at køre Flash multi-bruger applikationer såsom live streamin
Bruger du et andet system? Vanilla forum er en open source forumapplikation skrevet i PHP. Det er en fuldt tilpasselig, nem at bruge og understøtter ekstern
Introduktion Lynis er et gratis, open source-systemrevisionsværktøj, der bruges af mange systemadministratorer til at verificere integriteten og hærde deres systemer. jeg
Bruger du et andet system? Microweber er en open source træk og slip CMS og online shop. Microweber-kildekoden er hostet på GitHub. Denne guide vil vise dig
Bruger du et andet system? Microweber er en open source træk og slip CMS og online shop. Microweber-kildekoden er hostet på GitHub. Denne guide vil vise dig
Bruger du et andet system? Mattermost er et open source, selvhostet alternativ til Slack SAAS-meddelelsestjenesten. Med andre ord, med Mattermost er du ca
Bruger du et andet system? DotCMS er et open source, enterprise-grade content management system skrevet i Java. Den indeholder næsten alle nødvendige funktioner
Bruger du et andet system? BigTree CMS 4.2 er et hurtigt og let, gratis og open source, enterprise-grade content management system (CMS) med omfattende
Hvad skal du bruge En Vultr VPS med mindst 1 GB RAM. SSH-adgang (med root/administrative rettigheder). Trin 1: Installation af BungeeCord Første ting først
Bruger du et andet system? Docker er et program, der gør det muligt at implementere programmer, der køres som containere. Det blev skrevet i det populære Go-programmin
Golang er et programmeringssprog udviklet af Google. Takket være sin alsidighed, enkelhed og pålidelighed er Golang blevet en af de mest populære
Plesk-kontrolpanelet har en meget flot integration til Lets Encrypt. Lets Encrypt er en af de eneste SSL-udbydere, der udleverer certifikater komplet
Lets Encrypt er en certifikatmyndighed dedikeret til at levere SSL-certifikater gratis. cPanel har bygget en pæn integration, så du og din klient
Hvis du har glemt din MySQL root-adgangskode, kan du nulstille den ved at følge trinene i denne artikel. Processen er ret enkel og fungerer på disse
Bruger du et andet system? GoAccess er en open source weblog-analysator. Du kan bruge det til analyse af logs på realtidsbasis i enten terminalen eller
YOURLS (Your Own URL Shortener) er en open source URL-forkortelse og dataanalyseapplikation. I denne artikel vil vi dække installationsprocessen
Kunstig intelligens er ikke i fremtiden, det er her lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.
Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.
Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.
Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.
Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...
Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.
Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af dataene. Denne blog dækker udviklingen af datalagring på basis af en infografik.
Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.
I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.
For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af mac-maskiner. Læs denne artikel for at lære mere