Oppsett av en Node.js-applikasjon for produksjonsbruk på Rocky Linux 9
Rocky Linux er en fellesskapsdrevet Linux-distribusjon basert på Red Hat Enterprise Linux (RHEL). Den er anerkjent for sin pålitelighet, sikkerhet og samstemthet med RHEL-økosystemet. Node.js er et populært JavaScript-kjøremiljø som benyttes til å utvikle skalerbare og effektive serverapplikasjoner.
Denne instruksjonen vil veilede deg gjennom prosessen med å sette opp og konfigurere en Node.js-applikasjon for produksjon på Rocky Linux 9. Vi vil dekke alt fra systemkrav og installasjon av Node.js til konfigurering av en produksjonsserver og distribusjon av applikasjonen din.
Forutsetninger
* En Rocky Linux 9-server med administratortilgang
* En Node.js-applikasjon klar for distribusjon
Installasjon av Node.js
Installere Node.js og npm
For å installere Node.js og npm, pakkebehandleren for JavaScript, fra standard Rocky Linux 9-depoter, kjør følgende kommandoer:
sudo dnf install nodejs
sudo dnf install npm
Verifisere installasjonen
For å bekrefte at Node.js og npm er korrekt installert, bruk disse kommandoene:
node --version
npm --version
Oppsett av produksjonsserveren
Opprett en systembruker
Det er anbefalt å skape en dedikert systembruker for å kjøre Node.js-applikasjonen. Dette forbedrer sikkerheten ved å isolere applikasjonen fra rottilgangen.
Kjør denne kommandoen for å opprette en ny bruker med navnet «nodeuser»:
sudo adduser nodeuser
Gi deretter «nodeuser» tilgang til «nodejs»-gruppen for å tillate de nødvendige tillatelsene:
sudo usermod -aG nodejs nodeuser
Konfigurere Node.js-tjenesten
Vi skal bruke PM2, en prosessbehandler for Node.js-applikasjoner, for å sikre at applikasjonen vår er aktiv og fungerer i produksjonsmiljøet.
Installer PM2 globalt:
sudo npm install pm2 -g
Lag en PM2-oppstartsfil for Node.js-applikasjonen din:
/etc/systemd/system/my-app.service
Inkluder følgende innhold i oppstartsfilen:
[Unit]
Description=Min Node.js-applikasjon
After=network.target
[Service]
Type=forking
User=nodeuser
Group=nodejs
WorkingDirectory=/sti/til/din/app
ExecStart=pm2 start my-app.js
ExecStop=pm2 stop my-app
[Install]
WantedBy=multi-user.target
Aktiver og start PM2-tjenesten:
sudo systemctl daemon-reload
sudo systemctl enable my-app.service
sudo systemctl start my-app.service
Konfigurere brannmur
Hvis brannmuren er aktiv på serveren din, må du konfigurere den slik at den tillater innkommende tilkoblinger til Node.js-applikasjonen din.
Kjør følgende kommando for å åpne port 3000 for HTTP-trafikk:
sudo firewall-cmd --permanent --add-port=3000/tcp
sudo firewall-cmd --reload
Distribuere applikasjonen
Kopier applikasjonskoden
Overfør kodebasen for Node.js-applikasjonen din til serveren. Du kan benytte en SFTP-klient eller kommandoen scp:
scp -r my-app.js nodeuser@min-server:/sti/til/destinasjon
Installere avhengigheter
Etter at applikasjonen er kopiert til serveren, naviger til applikasjonskatalogen og installer de nødvendige avhengighetene:
cd my-app
npm install
Starte applikasjonen
Start Node.js-applikasjonen ved hjelp av PM2:
pm2 start my-app.js
Verifisere distribusjonen
For å forsikre deg om at applikasjonen din fungerer som den skal, kan du besøke den offentlige IP-adressen eller domenenavnet til serveren din i en nettleser.
Konklusjon
Ved å følge stegene i denne veiledningen har du nå konfigurert og distribuert en Node.js-applikasjon for produksjon på Rocky Linux 9. Du har installert Node.js, satt opp en produksjonsserver med PM2, konfigurert brannmuren og distribuert applikasjonen.
Distribusjon av Node.js-applikasjoner i produksjon kan være en utfordrende oppgave, men ved å benytte beste praksis og verktøy som PM2 kan du sørge for at applikasjonene dine kjører pålitelig og effektivt. Husk å overvåke applikasjonen din for feil og ytelsesproblemer, og utfør jevnlige sikkerhetsoppdateringer for å beskytte den mot sårbarheter.
Ofte stilte spørsmål
1. Hva er PM2, og hvorfor burde jeg bruke det?
PM2 er en prosessbehandler for Node.js-applikasjoner. Den lar deg starte, stoppe, overvåke og administrere Node.js-applikasjoner enkelt. PM2 sikrer også at applikasjonene dine forblir aktive selv etter omstart eller krasj.
2. Må jeg installere Node.js manuelt, eller kan jeg bruke et verktøy som n?
Du kan installere Node.js ved hjelp av verktøyet n, som gjør det enkelt å installere og administrere flere versjoner av Node.js på systemet ditt.
3. Hvordan setter jeg opp en LASTBALANSER for Node.js-applikasjonen min?
Du kan konfigurere en LASTBALANSER ved hjelp av verktøy som nginx eller Apache2. Disse verktøyene lar deg distribuere trafikken på flere servere, noe som forbedrer applikasjonens ytelse og tilgjengelighet.
4. Hvordan kan jeg overvåke ytelsen til Node.js-applikasjonen min?
Du kan overvåke ytelsen til Node.js-applikasjonen din ved å bruke verktøy som Prometheus, Grafana eller New Relic. Disse verktøyene gir deg sanntidsinnsikt i applikasjonens ytelse, slik at du raskt kan identifisere og løse eventuelle problemer.
5. Hvordan sikrer jeg Node.js-applikasjonen min mot sikkerhetsrisikoer?
Du kan sikre Node.js-applikasjonen din mot sikkerhetsrisikoer ved å følge beste praksis for sikker kodeutvikling, implementere autentisering og autorisasjon, og holde Node.js og avhengighetene dine oppdatert.
6. Hvordan kan jeg feilsøke problemer med Node.js-applikasjonen min?
Du kan feilsøke problemer med Node.js-applikasjonen din ved å bruke verktøy som debug, console.log() og Node.js-debuggeren. Du kan også se på Node.js-feilloggene for mer informasjon om feilene.
7. Hva er fordelene med å bruke Rocky Linux 9 for Node.js-applikasjoner?
Rocky Linux 9 er et stabilt og sikkert operativsystem som er kompatibelt med RHEL-økosystemet. Det gir et pålitelig grunnlag for Node.js-applikasjoner, med robust ytelse og sikkerhetsfunksjoner.
8. Kan jeg distribuere Node.js-applikasjoner på andre Linux-distribusjoner enn Rocky Linux 9?
Ja, du kan distribuere Node.js-applikasjoner på andre Linux-distribusjoner, men prosessen kan variere avhengig av distribusjonen. Prinsippene og beste praksisene som beskrives i denne veiledningen, kan imidlertid være veiledende uansett hvilken Linux-distribusjon du bruker.