În acest articol voi aborda găzduirea unei aplicații Node.js pe serverele de găzduire partajată de Namecheap, folosind cPanel. În acest articol, nu voi discuta despre configurarea serverului de baze de date sau a front-end-ului React pentru aplicația dvs. web. În schimb, vreau să mă concentrez pe provocările pe care le-ați putea confrunta cu rularea unei aplicații Node într-un mediu de găzduire partajată. == Nu întârzia, gazdă astăzi! == Înainte de a ajunge prea departe pe calea dezvoltării aplicației dvs. web, este o idee bună să puneți o versiune stabilă online. Acest lucru ar putea fi în mediul dvs. de producție sau într-un mediu de procesare care este similar cu mediul dvs. de producție. Majoritatea oamenilor vor aștepta până când aplicația lor este aproape completă înainte de a o găzdui online âÃÂàși asta este ceea ce am făcut când am dezvoltat prima mea aplicație web React și Node. Cu toate acestea, la acel moment, am avut multe provocări în a funcționa serverul meu Node API și, de asemenea, a trebuit să fac o mulțime de modificări în aplicația mea React. De aceea vă recomand să puneți o versiune online devreme, astfel încât să puteți face ajustări înainte de a scrie prea mult cod. == Utilizarea unui serviciu de găzduire partajată == Serverele de găzduire partajată de Namecheap folosesc cPanel ca interfață pentru panoul de control pentru a gestiona serverul Apache. Aceste instrucțiuni ar trebui, de asemenea, să ajute pe oricine care utilizează un serviciu de găzduire partajată cu cPanel, cum ar fi A2 Hosting și GoDaddy. De asemenea, am serverul meu Namecheap configurat cu un certificat SSL și cPanel redirecționează implicit tot traficul HTTP către HTTPS. Deci tot traficul către serverul meu este securizat. Veți găsi multe ghiduri care vă vor instrui despre cum să găzduiți o aplicație Node pe un serviciu de găzduire VPS (Server privat virtual), cum ar fi DigitalOcean. Dacă porniți de la zero, atunci găzduirea folosind un astfel de serviciu vă va oferi mai mult control. Dar, de obicei, este mai scump decât găzduirea partajată. Și în cazul meu am plătit deja pentru un serviciu de găzduire partajată Namecheap. Câteva avantaje ale utilizării cPanel și a găzduirii partajate: - Gestionat cu o consolă simplă de administrare web - Ușor de configurat - Ieftin, mai ales dacă găzduiești deja un site/domeniu - Poate crea cu ușurință site-uri web dinamice folosind alte tehnologii precum PHP etc., dacă explorezi diferite tehnologii Câteva dezavantaje: - Mai puţin âÃÂÃÂcontrolâÃÂàdeoarece nu ai acces la sistemul de operare de bază - Nu este scalabil == Unde se duce totul? == Mai întâi trebuie să creați un folder pentru toate fișierele sursă pentru aplicațiile dvs. Node. Am creat un folder numit âÃÂÃÂnodejsâÃÂàîn directorul /home/username și în acest folder creez apoi un subfolder pentru fiecare aplicație. Acum încărcați toate fișierele sursă în acest subdosar. Asigurați-vă că includeți și fișierul package.json. Nu încărcați folderul âÃÂÃÂnode_modulesâÃÂÃÂ, deoarece acesta va fi creat cu managerul de pachete mai tarziu. Rețineți că doar găzduim serverul Node API în exemplul nostru de arhitectură a aplicației web. Nu vom găzdui aplicația React folosind Node (mai multe despre acest subiect în articolul următor). httpsdavenewman.tech/wp-content/uploads/2020/06/Diagram-5_1.jpg Aspectul folderului arată fișierele sursă Node în folderul /home/username/nodejs/mynodeapi și există un .htaccess din folderul /home/username/public_html/myapi == Problema âÃÂàAplicația Node nu poate accesa porturile == Cea mai mare provocare a fost să ruleze aplicația mea Node API. Problema a fost că exemplul de cod dat în documentația de asistență Namecheap tocmai nu a funcționat! Încearcă să creeze un httpserver pentru a asculta pe portul 80 și un http **s**server pe portul 443. Totuși, întotdeauna am primit o eroare EACCESS care spunea că nu am permisiunea. pentru a folosi acele porturi. == Soluția âÃÂàNode nu are nevoie să acceseze portul! == Până la urmă am găsit soluția citind un comentariu al utilizatorului SibProgrammer într-un thread despre Plesk, un alt panou de control al găzduirii. cPanel folosește serverul de aplicații Phusion Passenger pentru a găzdui aplicațiile Node, la fel ca și Plesk. În concluzie: Când trimiteți o solicitare din browser, aceasta se duce la serverul Apache, apoi la Phusion Passenger și apoi la aplicația Node. Aplicația dvs. Node nu trebuie să dețină portul, deoarece este gestionat mai departe de serverele de aplicații Apache și Phusion Passenger. Acest lucru simplifică codul pentru crearea serverului https în fișierul dvs. www.js (sau app.js): * www.js * Testarea creării serverului http pentru Namecheap. * Dave */ const http = require('http http.createServer(function(request, response)) { response.writeHead(200, {'Content-Type': 'text/html response.endh1>Hello Worldh1 listen(process.env) .PORT); console.log(„Aplicația rulează Câteva lucruri de reținut: - Ascultați pe process.env.PORT (în loc să setați manual 80 sau 443). La testare am observat că process.env.PORT este nedefinit! Dar, interesant, asta nu contează în acest caz. - Utilizați un server http chiar dacă aveți configurat SSL. cPanel a configurat Apache să redirecționeze tot traficul HTTP către HTTPS și, în consecință, să răspundă la toate solicitările prin HTTPS. Nu trebuie să configurați manual aplicația Node pentru a configura un server https și a citi certificatele dvs. SSL. == Ultimii pași pentru serverul Node API == Acum ar trebui să fie procesul relativ simplu de a urma instrucțiunile pentru a vă configura aplicația nod. httpsdavenewman.tech/wp-content/uploads/2020/06/Diagram-5_2.jpg Captură de ecran a paginii de configurare Node.js a cPanelâÃÂà- Alegeți versiunea corespunzătoare a Node.js și modul de aplicare (se recomandă producția). - „Rădăcina aplicației” va fi folderul în care ați încărcat fișierele sursă mai devreme (…) nodejs/mynodeapiâÃÂàîn exemplul de mai sus). - âÃÂÃÂAdresa URL a aplicaţieiâÃÂàva fi adresa URL utilizată pentru a accesa API-ul dvs. (âÃÂÃÂmyapià ¢ÃÂàîn exemplu). Numele pe care îl dați în această casetă va fi folosit pentru a crea un subdosar în folderul dvs. /home/username/public_html. Nu trebuie să aibă același nume ca și folderul rădăcină al aplicației (dar adesea va fi). - „Fișierul de pornire a aplicației” va fi www.js sau app.js, în funcție de modul în care ați creat aplicația Node. - Depinde de dvs. cum doriți să configurați fișierul jurnal pentru pasageri. - Odată ce ați creat aplicația, veți vedea butonul pentru a rula instalarea NPM. ¢ÃÂÃÂ. Rulați acest lucru și va crea folderul „node_modules” cu toate modulele dependente de care are nevoie aplicația dumneavoastră. După ce ați configurat aplicația Node și ați pornit-o, aceasta va crea subdosarul în folderul dvs. /home/public_html. Acum va trebui să mergeți în acel folder și să editați fișierul .htaccess și să adăugați în următoarea linie: RewriteEngine dezactivat Acest lucru împiedică serverul Apache să rescrie (sau să redirecționeze) oricare dintre solicitările care trebuie să ajungă intacte la serverul API. Și asta e! Acum, aplicația dvs. Node API ar trebui să funcționeze și să răspundă la apelurile dvs. API. == Deci, ce urmeaza? == Acum că am configurat serverul Node API, am putea schimba front-end-ul nostru React în mediul nostru de dezvoltare pentru a indica acest server API. Sau am putea folosi Postman pentru a ne testa apelurile API. În următorul articol, vom analiza găzduirea aplicației React pe Namecheap și cPanel.