Cum se instalează Anchor CMS pe un VPS Fedora 26 LAMP
Folosind un sistem diferit? Anchor CMS este un motor de blog de sistem de gestionare a conținutului (CMS) super-simplu și extrem de ușor, gratuit și deschis
În acest tutorial, veți învăța cum să configurați o API RESTful completă, care va servi solicitările HTTP folosind Node.js și Express în timp ce o proxy inversă cu NGINX, pe Ubuntu 16.04 LTS. Vom folosi o aplicație numită Postman, un instrument de dezvoltare API foarte cunoscut, pentru a testa API-ul nostru și a ne asigura că este complet funcțional și funcționează corect. Node.js este un cadru JavaScript rapid și multiplă platforme bazat pe motorul V8 Chrome. Este utilizat atât pentru aplicații desktop cât și pentru server și este renumit pentru tratarea buclelor de evenimente cu un singur fir. Vom folosi Node.js ca backend pentru API-ul nostru RESTful, la pachet cu Express.js, cadrul nostru de aplicații web construit pentru Node.js. Express.js este lansat ca software gratuit și deschis. Express este din partea serverului, scris în JavaScript și este proiectat pentru construirea de API-uri, ceea ce îl face perfect pentru proiectul nostru. Pe de altă parte, Postman este un client HTTP foarte puternic, având în vedere dezvoltarea API. Dispune de toate instrumentele pe care le-ați putea dori pentru dezvoltarea API.
În primul rând, doriți să vă îndreptați pe site-ul Postman și să descărcați și să instalați Postman pentru computerul principal (Nu serverul dvs.). Toate instrucțiunile de instalare vor fi pe site-ul lor web.
Pentru început, va trebui mai întâi să instalăm Node.js pentru a putea începe dezvoltarea API-ului nostru. Vom descărca și instala Node.js de pe site-ul oficial.
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
În plus, veți dori, de asemenea, să preluați instrumentele de construire necesare, care vă vor fi de ajutor în compilarea modulelor.
sudo apt-get install build-essential
Pentru acest tutorial, vom folosi versiunea LTS a Node.js, care este versiunea 8.9.3.
Va trebui să inițializăm un nou proiect Node.js, care va conține o aplicație. Pentru a face acest lucru, creați un nou director.
mkdir expressapi
Modificați în noul director. Odată ajuns în interior, rulați npm init
și completați toate indicațiile solicitate. Rețineți „punctul de intrare” al aplicației dvs.: veți crea acest fișier mai târziu. După ce ai terminat, vei vedea un package.json
fișier în directorul tău curent. Acționează ca o descriere a proiectului nostru și listează toate dependențele necesare pentru a funcționa.
Acum vom configura Express.js și sunt dependențele.
npm install express
Procesul de instalare va începe. Va dura câteva minute până când totul va termina descărcarea.
În continuare, vom crea fișierul principal de pornire pentru API-ul nostru. Iată unde veți folosi „punctul de intrare” pe care l-ați văzut în package.json
fișier. De dragul acestui tutorial, voi folosi schema de denumire implicită index.js
,.
touch index.js
Apoi, deschideți-l în editorul de text nano.
nano index.js
În fișierul nostru principal, dorim să apelăm mai întâi la toate pachetele noastre principale și să ne înregistrăm rutele.
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);
Practic, ceea ce facem aici este inițializarea aplicației noastre și crearea unui router de bază pentru API-ul nostru. Rețineți că am setat portul aplicației noastre la 8080
. Vom avea nevoie de acest număr pentru când vom configura API-ul nostru RESTful. Acum suntem gata să mergem mai departe și să ne testăm API-ul.
În directorul de proiecte, executați următoarele.
node <filename>.js
Aceasta va începe API-ul, unde <filename>
este fișierul de start specificat în package.json
fișier. Apoi, deschideți Postman pe PC / Mac și faceți clic pe New
butonul " " din colțul din dreapta sus, apoi faceți clic pe " Request
". Când este acolo, ar trebui să vezi o bară care spune " GET
" lângă ea. Aici vom introduce adresa URL a solicitării noastre. Pur și simplu introduceți următoarele în secțiunea URL a cererii și faceți clic pe " Send
"
`http://your-server-ip:3000/api`
Vei vedea " 'API is online'
".
Pentru a gestiona rutele, vom folosi routerul Express. Dacă nu știți ce este un router, este în esență modul în care punctele finale ale aplicației răspund la solicitările clientului. Iată rutele pe care le vom seta ca exemplu:
/api/numbers
- Afișează toate numerele de la 1-10.
/api/letters
- Prezintă toate scrisorile de la AZ.
Acum vom stabili prima noastră structură de middleware de rută, ca atare.
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})
});
În acest exemplu, stabilim o situație în care un utilizator poate solicita suma unui număr + 1 furnizând forma de cuvânt a acestuia, folosind metoda GET. Folosim router.route()
funcția pentru a indica ce număr dorim să trimitem înapoi. Parametrii sunt numiți cu un " :
" în fața lor. Accesăm acești parametri (parametri) prin req.params
.
Iată un exemplu cu litere.
router.route('/letters/:letter').get((req, res) => {
res.json({result: req.params.letter.toUpperCase()})
});
Folosim aceeași metodă ca mai sus, dar trimitem înapoi scrisoarea cu majuscule.
NGINX este un bine-cunoscut software open-source folosit pentru servirea web, proxie inversă, streaming și multe altele. Vom folosi NGINX pentru a inversa proxy-ul API-ului nostru, pentru a ne permite să-l rulăm pe port 80
, deoarece Node.js nu permite conexiuni pe porturi mai mici de 1024 fără acces root. Acest lucru poate fi util atunci când conectați domeniul dvs. la server.
Pentru a începe instalarea NGINX, va trebui să rulați următoarele în terminalul dvs. și să așteptați finalizarea instalării.
sudo apt-get install nginx
În continuare, vom dori să creăm fișierul nostru de site pe care NGINX îl va folosi pentru a inversa aplicația noastră proxy.
sudo nano /etc/nginx/sites-available-api.js
Populați fișierul cu următoarele, apoi CTRL+ Opentru a-l salva.
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;
}
}
Folosind același port cu care am rulat aplicația mai devreme, îi spunem Nginx să redirecționeze toate cererile de la adresa noastră IP din port 80
către API-ul care rulează pe port 8080
.
Apoi, activați proxy-ul invers prin sincronizarea fișierului nostru nou creat în sites-available
folder:
sudo ln -s /etc/nginx/sites-available/api /etc/nginx/sites-available
Acest lucru vă va asigura că NGINX va inversa proxy-ul API-ului nostru.
După ce am terminat configurația NGINX, vom începe NGINX, apoi vom începe API-ul nostru. În primul rând, reporniți NGINX.
sudo systemctl restart nginx
Apoi, schimbați-vă în directorul API și începeți-l.
node <filename>.js
Aplicația va rula, pe port 80
. Pur și simplu executați testul de mai sus cu Postman, pentru a vă asigura că totul funcționează corect.
Într-un mediu de producție, doriți să vă asigurați că aveți un manager de proces pentru aplicațiile dvs. Node, pentru a vă asigura că acestea rămân pentru totdeauna în fundal. În acest tutorial, vom folosi un manager de proces numit PM2 (Process Manager 2), care este un manager de proces pentru aplicațiile Node.js care le va menține în viață pentru totdeauna cu un timp de oprire minim. PM2 vine cu multe instrumente de management utile, cum ar fi oprirea, reîncărcarea, întreruperea și multe altele. Pentru a instala PM2, tastați următoarele și așteptați instalarea acestuia.
sudo npm install pm2 -g
După instalare, tot ce trebuie să faceți este să vă asigurați că vă aflați în directorul de proiect, tastați următoarele și aplicația va fi pornită.
pm2 start <filename>.js
După cum am menționat anterior, PM2 are câteva instrumente utile pe care le puteți utiliza pentru a vă gestiona mai bine aplicația.
pm2 stop
- După cum sugerează și numele, acest lucru vă permite să opriți aplicația în curs de execuție și să omori procesul acesteia. Dacă aplicația dvs. produce un rezultat neașteptat, oprirea ei va veni la îndemână.
pm2 list
- Funcția listă vă permite să vedeți toate aplicațiile care rulează în mod curent prin PM2, mapate după numele lor. Dacă trebuie să verificați rapid timpul de funcționare al aplicației, ar trebui să utilizați acest instrument.
pm2 restart
- Dacă aplicația dvs. îngheață dintr-un motiv oarecare și doriți să o reîncărcați, pm2 restart face exact asta. Acesta va ucide procesul de aplicare și va începe din nou, în cadrul unui alt proces.
pm2 monit
- Instrumentul de monitorizare integrat al PM2 vă permite să vizualizați un grafic al detaliilor specifice ale aplicației dvs., cum ar fi utilizarea procesorului / RAM-ului, într-un grafic în stil ncurses ușor de utilizat. Acest lucru este util dacă doriți o imagine vizuală a încărcării aplicației.
Am finalizat acum sarcina noastră de a crea o API RESTful, folosind Node.js, Express și o redirecționăm invers cu NGINX. Simțiți-vă liber să vă extindeți la acest tutorial. Puteți face multe lucruri minunate cu noua dvs. API, cum ar fi adăugați metode de autentificare, o bază de date, o mai bună gestionare a rutelor și a erorilor și multe altele. Dacă aveți un domeniu, cu o înregistrare „A” deja configurată pe adresa dvs. IP, atunci veți putea accesa API-ul dvs. din domeniul dvs. Dacă doriți să aflați mai multe despre Express.js, vizitați site-ul lor la http://expressjs.com . Pentru a afla mai multe despre NGINX și despre proxy-ul invers, vizitați http://nginx.com . Pentru a citi mai multe despre PM2, vizitați pagina lor la http://pm2.keymetrics.io .
Folosind un sistem diferit? Anchor CMS este un motor de blog de sistem de gestionare a conținutului (CMS) super-simplu și extrem de ușor, gratuit și deschis
NFS este un sistem de fișiere bazat pe rețea care permite computerelor să acceseze fișiere într-o rețea de calculatoare. Acest ghid explică modul în care puteți expune folderele peste NF
TeamTalk este un sistem de conferințe care permite utilizatorilor să aibă conversații audio / video de înaltă calitate, chat de text, transfer de fișiere și partajare ecrane. Este
Vultr oferă o caracteristică care vă permite să preinstalați cheile SSH la crearea unei noi instanțe. Acest lucru vă permite să accesați utilizatorul root al serverelor, totuși
Ranger este un manager de fișiere bazat pe linia de comandă cu legături de cheie VI. Oferă o interfață de blestem minimalistă și frumoasă, cu o vedere asupra ierarhiei de directoare
Folosind un sistem diferit? Redmine este un instrument gratuit și deschis de gestionare a proiectelor bazat pe web. Este scris în Ruby on Rails și acceptă mai multe baze de date
Introducere RethinkDB este o bază de date NoSQL care stochează date sub formă de documente JSON. Are un limbaj de interogare super intuitiv și are funcții disponibile în mod obișnuit
Folosind un sistem diferit? Brotli este o nouă metodă de compresie cu un raport de compresie mai bun decât GZIP. Codul sursă este găzduit public pe acest Githu
În anumite ocazii, este posibil ca un administrator de sistem să aibă nevoie să creeze un cont de utilizator și să restricționeze accesul acestora la gestionarea propriilor fișiere prin sFTP, dar nu b
Introducere MySQL are o caracteristică excelentă cunoscută sub numele de vizualizări. Vizualizările sunt interogări stocate. Gândiți-vă la ele ca la un alias pentru o întrebare altfel lungă. În acest ghid,
Cerințe preliminare Un server Vultr care funcționează actualizat Arch Linux (vezi acest articol.) Acces Sudo. Comenzile care trebuie rulate ca root sunt prefixate de #. Th
Permiterea autentificării root pe SSH este de obicei considerată o practică slabă de securitate în întreaga industrie tehnologică. În schimb, puteți efectua administrativ sensibil
Folosind un sistem diferit? Seafile (versiunea comunității) este o soluție gratuită și deschisă de sincronizare și partajare a fișierelor, care este similară cu ownCloud. De-a lungul spiritului
Folosind un sistem diferit? NGINX poate fi utilizat ca server HTTP / HTTPS, server proxy invers, server proxy de poștă, echilibrator de sarcină, terminator TLS sau cachin
Folosind un sistem diferit? Thelia este un instrument open source pentru crearea de site-uri web pentru e-business și gestionarea conținutului online scris în PHP. Codul sursă Thelia i
Folosind un sistem diferit? DokuWiki este un program wiki open source scris în PHP care nu necesită o bază de date. Stochează date în fișiere text. DokuWik
Acest articol vă va învăța cum să configurați o închisoare chroot pe Debian. Presupun că utilizați Debian 7.x. Dacă executați Debian 6 sau 8, acest lucru poate funcționa, bine
Introducere Un mod ușor de a configura un server VPN pe Debian este cu PiVPN. PiVPN este un instalator și un pachet pentru OpenVPN. Creează comenzi simple pentru tine
Folosind un sistem diferit? Chamilo este un sistem gratuit și deschis de management al învățării (LMS), care este utilizat pe scară largă pentru educația online și colaborarea în echipă
EasyEngine (ee) este un instrument Python care vă permite să gestionați ușor și automat site-urile Wordpress de pe Nginx. Folosind EasyEngine, nu va trebui să dați
O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1
Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.
Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.
Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.
Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.
CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?
Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.
Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!
Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.
Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe