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.