Hvordan distribuere en NestJS-applikasjon med Nginx på Ubuntu VPS
Introduksjon
NestJS er et populært Node.js-rammeverk for å bygge kraftige og skalerbare serverapplikasjoner. Nginx, derimot, er en populær omvendt proxy-server og webserver som kan brukes til å distribuere NestJS-applikasjoner. Ved å kombinere disse to teknologiene kan du distribuere NestJS-applikasjonen din på en Ubuntu VPS for optimal ytelse og sikkerhet.
Denne artikkelen vil guide deg gjennom trinnene for å distribuere en NestJS-applikasjon med Nginx på en Ubuntu VPS. Vi vil dekke følgende emner:
* Installere Nginx og Node.js
* Konfigurere Nginx
* Distribuere NestJS-applikasjonen
* Konfigurere SSL (valgfritt)
* Feilsøking og overvåking
H2. Installere Nginx og Node.js
H3. Installere Nginx
1. Oppdater pakkebeholderen:
sudo apt update
2. Installer Nginx:
sudo apt install nginx
H3. Installere Node.js
1. Legg til Node.js-lageret:
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
2. Installer Node.js:
sudo apt install nodejs
H2. Konfigurere Nginx
1. Opprett en ny serverblokkkonfigurasjonsfil:
sudo nano /etc/nginx/sites-available/nest-app
2. Lim 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:
sudo systemctl reload nginx
H2. Distribuere NestJS-applikasjonen
H3. Bygge NestJS-applikasjonen
1. Naviger til NestJS-applikasjonskatalogen:
cd /path/to/nest-app
2. Bygg NestJS-applikasjonen:
npm run build
H3. Distribuere NestJS-applikasjonen
1. Opprett en katalog for den distribuerte applikasjonen:
sudo mkdir /opt/nest-app
2. Kopier den bygde applikasjonen til katalogen:
sudo cp -r dist/* /opt/nest-app
3. Kjør NestJS-applikasjonen:
cd /opt/nest-app
npm start
H2. Konfigurere SSL (valgfritt)
Hvis du vil aktivere SSL for NestJS-applikasjonen, må du følge disse trinnene:
1. Få et SSL-sertifikat fra en pålitelig sertifikatmyndighet.
2. Opprett en ny serverblokkkonfigurasjonsfil:
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:
sudo systemctl reload nginx
H2. Feilsøking og overvåking
H3. Feilsøking
* Sjekk Nginx-feilloggen (/var/log/nginx/error.log) for feilmeldinger.
* Sjekk NestJS-applikasjonsloggen (vanligvis i /var/log/nest-app/nest-app.log) for feilmeldinger.
* Bruk Nginx-statusmodulen (/server-status) for å overvåke ytelsen til Nginx.
H3. Overvåking
* Bruk et overvåkingsverktøy som Prometheus eller Grafana til å overvåke ytelsen til applikasjonen.
* Aktiver Nginx-loggens tilgangslogger for å spore tilgang til applikasjonen.
* Konfigurer varsler for å bli varslet om eventuelle problemer med applikasjonen eller Nginx.
Konklusjon
Ved å følge trinnene beskrevet i denne artikkelen, vil du kunne distribuere NestJS-applikasjonen din med Nginx på en Ubuntu VPS. Denne konfigurasjonen gir forbedret ytelse, sikkerhet og skalerbarhet for applikasjonen din. Konsistent overvåking og feilsøking er avgjørende for å sikre at applikasjonen din kjører problemfritt og utnytter fordelene med Nginx og NestJS fullt ut.
Vanlige spørsmål (FAQs)
* Hvordan kan jeg endre porten som NestJS-applikasjonen kjører på?
* Rediger konfigurasjonen i serverblokken i /etc/nginx/sites-available/nest-app og endre porten i «proxy_pass»-direktivet.
* Hvordan kan jeg oppgradere NestJS-applikasjonen?
* Bygg den nye versjonen av NestJS-applikasjonen og distribuer den på nytt ved å erstatte de eksisterende filene i /opt/nest-app.
* Hvordan kan jeg konfigurere Nginx for omvendt proxy-buffer?
* Legg til «proxy_buffering on» og «proxy_buffer_size 16k» i serverblokken i /etc/nginx/sites-available/nest-app.
* Hvordan kan jeg forbedre sikkerheten til Nginx?
* Konfigurer brannmuren for å begrense tilgangen til Nginx-portene.
* Aktiver mod_security-modulen i Nginx for å beskytte mot webapplikasjonsangrep.
* Hvordan kan jeg overvåke Nginx-ytelsen?
* Bruk Nginx-statusmodulen (/server-status) for å få informasjon i sanntid om Nginx-ytelsen.
* Bruk overvåkingsverktøy som Prometheus eller Grafana til å samle og visualisere Nginx-metrikk.
* Hvordan kan jeg feilsøke Nginx-proxy-problemer?
* Sjekk Nginx-feilloggen (/var/log/nginx/error.log) for feilmeldinger.
* Bruk «curl -v» for å teste proxy-tilkoblingene fra kommandolinjen.
* Hvordan kan jeg distribuere en NestJS-applikasjon i produksjon?
* Konfigurer en lastbalanserer foran Nginx for høy tilgjengelighet.
* Bruk en CI/CD-rørledning for å automatisere distribusjonsprosessen.
* Hvordan kan jeg forbedre ytelsen til NestJS-applikasjonen?
* Aktiver GZIP-komprimering i NestJS- og Nginx-konfigurasjonene.
* Bruk et innholdsleveringsnettverk (CDN) for å cache statiske ressurser.
* Hvordan kan jeg feilsøke problemer med NestJS-bygg?
* Sjekk NestJS-applikasjonsloggen (vanligvis i /var/log/nest-app/nest-app.log) for feilmeldinger.
* Kontroller at du har installert alle nødvendige avhengigheter for NestJS-applikasjonen.