Hvordan distribuere en NestJS-applikasjon med Nginx på Ubuntu VPS

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.