Distribuer NestJS med Nginx på Ubuntu VPS: Komplett guide


Veiledning for utrulling av en NestJS-applikasjon med Nginx på Ubuntu VPS

Innledning

NestJS er et robust Node.js-rammeverk som ofte benyttes for å utvikle skalerbare og effektive serverapplikasjoner. Nginx, på sin side, er en utbredt webserver og omvendt proxy-server som er ideell for å distribuere NestJS-applikasjoner. Ved å integrere disse to verktøyene kan du pålitelig distribuere din NestJS-applikasjon på en Ubuntu VPS, noe som gir deg optimal ytelse og sikkerhet.

Denne veiledningen vil ta deg gjennom de nødvendige stegene for å distribuere en NestJS-applikasjon med Nginx på en Ubuntu VPS. Vi vil dekke:

  • Installasjon av Nginx og Node.js
  • Konfigurasjon av Nginx
  • Distribusjon av NestJS-applikasjonen
  • Oppsett av SSL (valgfritt)
  • Feilsøking og overvåkning

Installere Nginx og Node.js

Installere Nginx

1. Oppdater pakkelisten:

sudo apt update

2. Installer Nginx:

sudo apt install nginx

Installere Node.js

1. Legg til Node.js-depotet:

curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -

2. Installer Node.js:

sudo apt install nodejs

Konfigurere Nginx

1. Opprett en ny konfigurasjonsfil for serverblokken:

sudo nano /etc/nginx/sites-available/nest-app

2. Kopier inn følgende konfigurasjon:

server {
listen 80;
server_name example.com;

location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}

3. Aktiver serverblokken:

sudo ln -s /etc/nginx/sites-available/nest-app /etc/nginx/sites-enabled/nest-app

4. Test Nginx-konfigurasjonen:

sudo nginx -t

5. Last inn Nginx på nytt:

sudo systemctl reload nginx

Distribusjon av NestJS-applikasjonen

Bygge NestJS-applikasjonen

1. Naviger til mappen for NestJS-applikasjonen:

cd /path/to/nest-app

2. Bygg NestJS-applikasjonen:

npm run build

Distribusjon av NestJS-applikasjonen

1. Lag en mappe for den distribuerte applikasjonen:

sudo mkdir /opt/nest-app

2. Kopier den bygde applikasjonen til mappen:

sudo cp -r dist/* /opt/nest-app

3. Start NestJS-applikasjonen:

cd /opt/nest-app
npm start

Konfigurere SSL (valgfritt)

For å aktivere SSL for din NestJS-applikasjon, følg disse stegene:

1. Skaff et SSL-sertifikat fra en godkjent sertifikatutsteder.
2. Opprett en ny konfigurasjonsfil for serverblokken:

sudo nano /etc/nginx/sites-available/nest-app-ssl

3. Lim inn følgende konfigurasjon:

server {
listen 443 ssl;
server_name example.com;

ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private.key;

location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}

4. Aktiver serverblokken:

sudo ln -s /etc/nginx/sites-available/nest-app-ssl /etc/nginx/sites-enabled/nest-app-ssl

5. Last inn Nginx på nytt:

sudo systemctl reload nginx

Feilsøking og Overvåkning

Feilsøking

  • Sjekk Nginx» feillogg (/var/log/nginx/error.log) for feilmeldinger.
  • Sjekk loggen for NestJS-applikasjonen (vanligvis i /var/log/nest-app/nest-app.log) for feil.
  • Bruk Nginx» statusmodul (/server-status) for å overvåke ytelsen.

Overvåkning

  • Bruk verktøy som Prometheus eller Grafana for å overvåke applikasjonens ytelse.
  • Aktiver Nginx» tilgangslogger for å spore tilgang til applikasjonen.
  • Sett opp varsler for å få beskjed om eventuelle problemer med applikasjonen eller Nginx.

Konklusjon

Ved å følge instruksjonene i denne veiledningen vil du være i stand til å distribuere din NestJS-applikasjon med Nginx på en Ubuntu VPS. Denne konfigurasjonen gir deg forbedret ytelse, sikkerhet og skalerbarhet. Kontinuerlig overvåkning og feilsøking er nødvendig for å sikre at applikasjonen kjører optimalt og drar full nytte av fordelene som tilbys av Nginx og NestJS.

Ofte stilte spørsmål (FAQ)

  • Hvordan endrer jeg porten som NestJS-applikasjonen kjører på?
    Endre konfigurasjonen i serverblokken i /etc/nginx/sites-available/nest-app og modifiser porten i «proxy_pass»-direktivet.
  • Hvordan oppgraderer jeg NestJS-applikasjonen?
    Bygg den nye versjonen og distribuer den på nytt ved å erstatte de gamle filene i /opt/nest-app.
  • Hvordan konfigurerer jeg Nginx for omvendt proxy-buffring?
    Legg til «proxy_buffering on» og «proxy_buffer_size 16k» i serverblokken i /etc/nginx/sites-available/nest-app.
  • Hvordan forbedrer jeg sikkerheten til Nginx?
    Konfigurer brannmuren for å begrense tilgangen til Nginx-portene.
    Aktiver mod_security-modulen i Nginx for beskyttelse mot webangrep.
  • Hvordan overvåker jeg Nginx» ytelse?
    Bruk Nginx» statusmodul (/server-status) for å få sanntidsinformasjon.
    Bruk overvåkingsverktøy som Prometheus eller Grafana for å samle og visualisere metrikk.
  • Hvordan feilsøker jeg proxy-problemer med Nginx?
    Sjekk Nginx» feillogg (/var/log/nginx/error.log) for meldinger.
    Bruk «curl -v» for å teste proxy-tilkoblingene fra kommandolinjen.
  • Hvordan distribuerer jeg en NestJS-applikasjon i produksjon?
    Konfigurer en lastbalanserer foran Nginx for å sikre høy tilgjengelighet.
    Bruk en CI/CD-pipeline for å automatisere distribusjonsprosessen.
  • Hvordan forbedrer jeg ytelsen til NestJS-applikasjonen?
    Aktiver GZIP-komprimering i både NestJS og Nginx.
    Bruk et innholdsleveringsnettverk (CDN) for å cachen statiske ressurser.
  • Hvordan feilsøker jeg problemer med NestJS-bygg?
    Sjekk loggen for NestJS-applikasjonen (vanligvis i /var/log/nest-app/nest-app.log) for feil.
    Sjekk at alle nødvendige avhengigheter er installert.