• Tehnoloģija

Kā pašam uzstādīt n8n uz Linux VPS (soli pa solim)

  • Felix Rose-Collins
  • ••
  • 12 min read

Ievads

n8n ir viens no jaudīgākajiem šobrīd pieejamajiem atvērtā koda darba plūsmas automatizācijas rīkiem. Atšķirībā no SaaS alternatīvām, piemēram, Zapier vai Make, n8n nodrošina pilnīgu kontroli pār jūsu datiem un automatizācijām — taču tikai tad, ja jūs to hostējat paši. Linux VPS ir ideāla vide šim nolūkam: vienmēr pieejama, pieejama par saprātīgu cenu un pilnībā jūsu kontrolē.

Šī rokasgrāmata izvedīs jūs cauri visam procesam, kā uzstādīt darbam gatavu, pašhostētu n8n instanci uz Linux VPS. Jūs sāksiet ar tukšu serveri un nonāksiet pie pilnībā drošas, SSL atbalstošas n8n vides ar Docker, Nginx, PostgreSQL, automatizētām dublējumkopijām un pastiprinātu drošības konfigurāciju.

Galvenie secinājumi

  • n8n uz VPS nodrošina neierobežotu darba plūsmu skaitu, bez lietošanas ierobežojumiem un pilnīgu datu īpašumtiesību saglabāšanu
  • Docker ir ieteicamā instalēšanas metode, kas atvieglo atjauninājumus un izolāciju
  • PostgreSQL ir ieteicamā datubāze ražošanas darba slodzēm (nevis SQLite)
  • Ražošanas lietošanai ir nepieciešams reversais starpniekserveris (Nginx) ar Let’s Encrypt SSL
  • Lai nodrošinātu nevainojamu n8n darbību ar PostgreSQL, jūsu VPS jābūt vismaz 1 vCPU un 2 GB RAM
  • Regulāras automatizētas dublējumu kopijas aizsargā jūsu darba plūsmu datus un piekļuves datus

Kas ir n8n?

n8n (izrunā kā „n-eight-n”) ir atvērtā koda darba plūsmas automatizācijas platforma, kas ļauj savienot lietotnes, API un pakalpojumus, izmantojot vizuālu, uz mezgliem balstītu redaktoru. Tā jau sākotnēji atbalsta vairāk nekā 400 integrācijas un ļauj darba plūsmās izpildīt pielāgotu JavaScript vai Python kodu.

Galvenā atšķirība starp n8n un tā konkurentiem ir saistīta ar trim aspektiem: īpašumtiesībām, izmaksām un elastīgumu.

**Īpašumtiesības: **Ja n8n tiek pašhostēts, jūsu darba plūsmu dati, autentifikācijas dati un izpildes žurnāli nekad neiziet ārpus jūsu servera. Komandām, kas apstrādā konfidenciālus klientu datus, finanšu ierakstus vai patentētu biznesa loģiku, tas ir ārkārtīgi svarīgi. Mākoņplatformas glabā jūsu automatizācijas loģiku savā infrastruktūrā, kas ir pakļauta to datu glabāšanas politikai un drošības stāvoklim.

**Izmaksas: **n8n mākoņpakalpojuma plāns paredz maksu par katru darba plūsmas izpildi, kas liela apjoma automatizācijām ātri summējas. Vidēja lieluma komanda, kas dienā veic tūkstošiem izpildes, mēnesī var tērēt simtiem dolāru. Savā VPS, tiklīdz esat samaksājuši par serveri, izpildes ir neierobežotas bez papildu izmaksām.

**Elastība: **Pašuzstādītais n8n ļauj instalēt kopienas mezglus, izpildīt jebkādu kodu darba plūsmās, savienoties ar iekšējiem pakalpojumiem, kas nav pieejami no publiskā interneta, un konfigurēt katru izvietošanas aspektu pēc saviem ieskatiem. Mākoņpakalpojumu plāni ierobežo daudzas no šīm iespējām.

Priekšnosacījumi

Pirms sākat, pārliecinieties, ka jums ir:

  • Linux VPS ar Ubuntu 22.04 vai 24.04 (ieteicams). Pārbaudiet, vai jūsu pakalpojumu sniedzējs piedāvā Ubuntu izvēlētajā plāna izmērā, jo daži pamata līmeņa plāni piedāvā tikai citas distribūcijas
  • Lietotājs bez root tiesībām, kam ir sudo privilēģijas
  • Domēna vārds, kas norāda uz jūsu VPS IP adresi (piem., n8n.yourdomain.com)
  • SSH piekļuve jūsu serverim
  • Pamata zināšanas par Linux komandu rindu

Pareizā VPS izvēle

Jūsu izvēlētais serveris tieši ietekmē n8n veiktspēju. Minimāli nepieciešams 1 vCPU, 2 GB RAM un 20 GB SSD atmiņas. Papildu RAM, salīdzinot ar minimālo SQLite bāzētu instalāciju, ir nepieciešama, jo PostgreSQL, Nginx un n8n darbojas vienlaikus.

Iepazīstieties ar Ranktracker

"Viss vienā" platforma efektīvai SEO optimizācijai

Katra veiksmīga uzņēmuma pamatā ir spēcīga SEO kampaņa. Taču, ņemot vērā neskaitāmos optimizācijas rīkus un paņēmienus, var būt grūti saprast, ar ko sākt. Nu, nebaidieties, jo man ir tieši tas, kas jums palīdzēs. Iepazīstinu ar Ranktracker "viss vienā" platformu efektīvai SEO optimizācijai.

Mēs beidzot esam atvēruši reģistrāciju Ranktracker pilnīgi bez maksas!

Izveidot bezmaksas kontu

Vai Pierakstīties, izmantojot savus akreditācijas datus

Komandām ar vairākiem lietotājiem, sarežģītām daudzpakāpju darba plūsmām vai lielu webhook caurlaidspēju ieteicams veikt uzlabojumu līdz 2 vCPU un 4 GB RAM. Ja plānojat saglabāt garus izpildes žurnālus, uzglabāšanas vietai jābūt vismaz 40 GB.

PetroSky piedāvā NVMe VPS plānus Parīzē un Monreālā, kur n8n ir pieejams kā ar vienu klikšķi instalējama lietojumprogramma norēķinu brīdī: atvērtā koda instalācijas skripts izvieto n8n ar Docker Compose un automātiski konfigurē HTTPS, izmantojot Caddy un Let’s Encrypt. Šajā rokasgrāmatā ir aprakstīta manuālā instalēšana, kas darbojas ar jebkuru pakalpojumu sniedzēju.

Izvēloties VPS pakalpojumu sniedzēju, ņemiet vērā arī ģeogrāfisko atrašanās vietu. Izvietojiet savu n8n instanci reģionā, kas atrodas vistuvāk pakalpojumiem, ar kuriem tā visbiežāk savienosies — tas samazina API aizturi jūsu darba plūsmas izpildēs.

1. solis: Atjauniniet savu serveri

Pirms kaut ko instalēt, izveidojiet SSH savienojumu ar savu VPS un veiciet pilnu sistēmas atjaunināšanu:

    sudo apt update && sudo apt upgrade -y

Tas nodrošina, ka jums ir jaunākie drošības labojumi un visas sistēmas bibliotēkas ir atjauninātas, pirms pievienojat Docker un citu programmatūru.

Pārstartējiet sistēmu, ja tika veikts kodola atjauninājums:

    sudo reboot

Pēc atkārtotas savienošanās caur SSH izveidojiet atsevišķu sistēmas lietotāju n8n darbībai. Pakalpojumu darbināšana kā root ir drošības risks:

    sudo adduser n8nuser
    sudo usermod -aG sudo n8nuser
    su - n8nuser

2. solis: Instalējiet Docker un Docker Compose

n8n oficiāli ieteicamā instalēšanas metode ir Docker. Docker izolē n8n un tā atkarības no pārējās sistēmas, padarot atjauninājumus un atgriešanos pie iepriekšējās versijas vienkāršu.

Instalējiet Docker, izmantojot oficiālo ērtības skriptu:

    curl -fsSL https://get.docker.com | sudo sh

Docker dokumentācijā ir norādīts, ka ērtības skripts nav ieteicams ražošanas vidē, jo tas instalē jaunāko versiju, neļaujot izvēlēties versiju. Ja vēlaties fiksēt Docker versijas, izmantojiet apt repozitorija metodi no Docker Ubuntu instalēšanas rokasgrāmatas (docs.docker.com/engine/install/ubuntu/).

Pievienojiet savu lietotāju Docker grupai, lai varētu izpildīt Docker komandas bez sudo:

    sudo usermod -aG docker $USER
    newgrp docker

Pārbaudiet, vai Docker darbojas pareizi:

    docker --version
    docker compose version

Abām komandām jāatgriež versiju virknes bez kļūdām. Ja Docker Compose netiek atrasts, instalējiet to manuāli:

    sudo apt install docker-compose-plugin -y

3. solis: PostgreSQL konfigurēšana ražošanas vidē

Pēc noklusējuma n8n kā datubāzi izmanto SQLite. SQLite ir piemērota personiskai lietošanai un vienkāršām darbplūsmām, taču tā slikti apstrādā vienlaicīgas rakstīšanas darbības, kas izpaužas kā palēnināšanās un kļūdas „datubāze ir bloķēta”, ja vienlaikus darbojas daudzas darbplūsmas. Ražošanas vides izvietošanai pareizā izvēle ir PostgreSQL.

Iepazīstieties ar Ranktracker

"Viss vienā" platforma efektīvai SEO optimizācijai

Katra veiksmīga uzņēmuma pamatā ir spēcīga SEO kampaņa. Taču, ņemot vērā neskaitāmos optimizācijas rīkus un paņēmienus, var būt grūti saprast, ar ko sākt. Nu, nebaidieties, jo man ir tieši tas, kas jums palīdzēs. Iepazīstinu ar Ranktracker "viss vienā" platformu efektīvai SEO optimizācijai.

Mēs beidzot esam atvēruši reģistrāciju Ranktracker pilnīgi bez maksas!

Izveidot bezmaksas kontu

Vai Pierakstīties, izmantojot savus akreditācijas datus

Palaidiet PostgreSQL Docker vidē kopā ar n8n:

    mkdir ~/n8n && cd ~/n8n

Izveidojiet vides failu, lai droši uzglabātu savus slepenos datus. Nekad neiekļaujiet paroles tieši kompozīcijas failā:

    nano ~/n8n/.env

Pievienojiet šo tekstu, aizstājot vietu turētāju vērtības ar spēcīgām, unikālām parolēm:

    POSTGRES_USER=n8n
    POSTGRES_PASSWORD=jūsu_spēcīgā_datubāzes_parole_šeit
    POSTGRES_DB=n8n
    N8N_ENCRYPTION_KEY=jūsu_nejauša_32_rakstzīmju_virkne_šeit

Izveidojiet drošu šifrēšanas atslēgu, izmantojot:

    openssl rand -hex 16

Izmantojiet izvadi kā savu N8N_ENCRYPTION_KEY. Šī atslēga šifrē n8n uzglabātās piekļuves datus — ja to pazaudējat, visi saglabātie piekļuves dati kļūst neatgūstami.

4. solis: Izveidojiet n8n Docker Compose failu

Izveidojiet failu docker-compose.yml savā n8n direktorijā:

    nano ~/n8n/docker-compose.yml

Ielīmējiet šādu konfigurāciju:


services:
  postgres:
    image: postgres:16-alpine
    restart: always
    environment:
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
      - POSTGRES_DB=${POSTGRES_DB}
    volumes:
      - postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
      interval: 5s
      timeout: 5s
      atkārtojumi: 10


  n8n:
    attēls: docker.n8n.io/n8nio/n8n
    pārstartēšana: vienmēr
    porti:
      - "127.0.0.1:5678:5678"
    vide:
      - N8N_HOST=n8n.yourdomain.com
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - NODE_ENV=production
      - WEBHOOK_URL=https://n8n.yourdomain.com/
      - GENERIC_TIMEZONE=Europe/London
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=postgres
      - DB_POSTGRESDB_PORT=5432
      - DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
      - DB_POSTGRESDB_USER=${POSTGRES_USER}
      - DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
      - N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
      - EXECUTIONS_MODE=regular
      - N8N_LOG_LEVEL=info
    volumes:
      - n8n_data:/home/node/.n8n
    depends_on:
      postgres:
        condition: service_healthy


volumes:
  postgres_data:
  n8n_data:

Konfigurācijas piezīmes:

  • Porta piesaistīšana 127.0.0.1:5678:5678 nodrošina, ka n8n ir pieejams tikai lokāli. Nginx apstrādās visu ārējo datplūsmu — nekad neizpaužiet portu 5678 tieši internetā.
  • Iestatījums `depends_on` ar nosacījumu `service_healthy` nodrošina, ka n8n pirms palaišanas gaida, līdz PostgreSQL ir pilnībā gatavs. Bez šī nosacījuma n8n neizdosies pirmajā palaišanas reizē, ja datu bāze vēl nepieņem savienojumus.
  • N8N_LOG_LEVEL=info nodrošina noderīgus darbības žurnālus, nepārblīvējot diska atmiņu, kā to darītu debug.

5. solis: Nginx instalēšana un konfigurēšana

Nginx darbosies kā apgrieztais starpniekserveris, pārsūtot HTTPS datplūsmu no 443. porta uz jūsu n8n konteineri 5678. portā. Tas arī apstrādā SSL pārtraukšanu, kas nozīmē, ka n8n pašam nav jāpārvalda sertifikāti.

    sudo apt install nginx -y

Noņemiet noklusējuma vietni un izveidojiet jaunu servera bloku n8n:

    sudo rm /etc/nginx/sites-enabled/default
    sudo nano /etc/nginx/sites-available/n8n

Ielīmējiet šo tekstu:

    map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;
    }
server {
    listen 80;
    server_name n8n.yourdomain.com;


    location / {
        proxy_pass http://127.0.0.1:5678;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        chunked_transfer_encoding on;
        proxy_buffering off;
        proxy_cache off;
        proxy_read_timeout 90s;
        client_max_body_size 50m;
    }
}

Augšējā map bloka konfigurācija pareizi apstrādā WebSocket atjaunināšanas galvenes. n8n izmanto WebSockets reāllaika atjauninājumiem redaktorā, tāpēc šī konfigurācija ir svarīga — bez tās vizuālais redaktors nedarbosies pareizi.

Direktīva `client_max_body_size 50m` ļauj darba plūsmām saņemt liela apjoma webhook datu slodzes. Nginx noklusējuma ierobežojums ir 1 MB, kas ir pārāk mazs darba plūsmām, kuras apstrādā failu augšupielādes vai liela apjoma JSON atbildes.

Iespējojiet konfigurāciju un pārbaudiet to:

    sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
    sudo nginx -t
    sudo systemctl reload nginx

6. solis: Izsniedziet SSL sertifikātu ar Let’s Encrypt

Instalējiet Certbot un Nginx spraudni:

    sudo apt install certbot python3-certbot-nginx -y

Pieprasiet sertifikātu savam domēnam:

    sudo certbot --nginx -d n8n.yourdomain.com

Izpildiet norādījumus. Kad tiek jautāts, vai pāradresēt HTTP datplūsmu uz HTTPS, izvēlieties „Yes” (2. opcija). Certbot automātiski atjauninās jūsu Nginx konfigurāciju, lai apstrādātu šo pāradresāciju, un instalēs pilnu sertifikātu ķēdi.

Pārbaudiet, vai automātiskā atjaunošana ir konfigurēta pareizi:

    sudo certbot renew --dry-run

Certbot instalē systemd taimeri, kas sertifikātus automātiski atjauno ik pēc 12 stundām. Sertifikāti tiek atjaunoti, kad līdz to derīguma termiņa beigām ir palikuši 30 dienas. Jums nekad nevajadzētu tos atjaunot manuāli.

7. solis: Palaižiet n8n

Atgriezieties savā n8n direktorijā un palaidiet visus pakalpojumus:

    cd ~/n8n
    docker compose up -d

Docker lejupielādīs PostgreSQL un n8n attēlus, izveidos apjomus, vispirms palaidīs PostgreSQL, pagaidīs, līdz tiks veikta veiktspējas pārbaude, un pēc tam palaidīs n8n. Šis process pirmajā reizē aizņem 1–3 minūtes.

Pārbaudiet, vai abi konteineri darbojas:

    docker compose ps

Jums vajadzētu redzēt, ka gan postgres, gan n8n ir uzskaitīti ar statusu Up. Ja n8n rāda Restarting, pārbaudiet žurnālus:

    docker compose logs n8n --tail=50

Kad abi konteineri darbojas pareizi, atveriet pārlūku un dodieties uz https://n8n.yourdomain.com. Jums tiks piedāvāts izveidot īpašnieka kontu, norādot e-pasta adresi un paroli. Šim kontam ir pilnīgas administratora tiesības jūsu n8n instancē.

8. solis: Konfigurējiet n8n, lai tas sāktos sistēmas uzsākšanas laikā

Docker-compose.yml failā esošā direktīva „restart: always” nodrošina, ka visi konteineri automātiski restartējas pēc kļūmes vai servera pārstartēšanas.

Pārbaudiet to, pārstartējot savu serveri:

    sudo reboot

Pēc atkārtotas savienošanās caur SSH pārbaudiet, vai n8n ir automātiski atsācis darbu:

    docker compose -f ~/n8n/docker-compose.yml ps

Abiem konteineriem jābūt redzamiem kā darbojošiem bez jebkādas manuālas iejaukšanās.

9. solis: Automātisko dublējumu iestatīšana

Jūsu n8n dati — darba plūsmas, autentifikācijas dati un izpildes vēsture — atrodas divās vietās: PostgreSQL datu bāzē un n8n_data Docker sējumā (kurā tiek glabāti šifrēšanas atslēgas un daļa konfigurācijas). Regulāri veiciet abu dublējumus.

Izveidojiet dublējuma skriptu:

    nano ~/n8n/backup.sh

Ielīmējiet šo tekstu:

    #!/bin/bash
    BACKUP_DIR="/home/n8nuser/backups"
    DATE=$(date +%Y-%m-%d_%H-%M)
    LOG_FILE="$BACKUP_DIR/backup.log"
# Pirms jebkādas citas darbības pārliecinieties, ka dublējumu katalogs pastāv
mkdir -p "$BACKUP_DIR"


# Izveidojiet PostgreSQL dublējumu
DUMP_FILE="$BACKUP_DIR/n8n_db_$DATE.sql"
docker compose -f /home/n8nuser/n8n/docker-compose.yml exec -T postgres \
  pg_dump -U n8n n8n > "$DUMP_FILE"


# Pārbaudīt, vai izgūšana ir izdevusies un fails nav tukšs
if [ $? -ne 0 ] || [ ! -s "$DUMP_FILE" ]; then
    echo "KĻŪDA: Datubāzes dublējums neizdevās $DATE" >> "$LOG_FILE"
    rm -f "$DUMP_FILE"
    exit 1
fi


# Izveidojiet šifrēšanas atslēgas un vides mainīgo rezerves kopiju
cp /home/n8nuser/n8n/.env "$BACKUP_DIR/n8n_env_$DATE.bak"
# Izveidojiet n8n_data sējuma rezerves kopiju (instances konfigurācija un instalētie kopienas mezgli)
docker run --rm -v n8n_n8n_data:/data -v "$BACKUP_DIR":/backup alpine \
  tar czf /backup/n8n_data_$DATE.tar.gz -C /data .


# Saspiež datubāzes izgūto kopiju
gzip "$DUMP_FILE"


# Saglabā tikai pēdējo 7 dienu dublējumus
find "$BACKUP_DIR" -name "*.sql.gz" -mtime +7 -delete
find "$BACKUP_DIR" -name "*.bak" -mtime +7 -delete
find "$BACKUP_DIR" -name "n8n_data_*.tar.gz" -mtime +7 -delete


echo "Dublējums pabeigts: n8n_db_$DATE.sql.gz" >> "$LOG_FILE"

Sējuma nosaukums n8n_n8n_data ir cēlies no Docker Compose, kas sējumam pievieno projekta mapes nosaukumu (n8n). Pārbaudiet savu ar komandu docker volume ls.

Padariet skriptu izpildāmu un ieplānojiet tā izpildi ar cron:

    chmod +x ~/n8n/backup.sh
    crontab -e

Pievienojiet šo rindu, lai dublējums tiktu veikts katru dienu plkst. 2:00:

    0 2 * * * /home/n8nuser/n8n/backup.sh >> /home/n8nuser/backups/backup.log 2>&1

Lai nodrošinātu ārējo dublējumu, apsveriet iespēju sinhronizēt savu dublējumu direktoriju ar S3 saderīgu objektu uzglabāšanas pakalpojumu sniedzēju, izmantojot rclone vai aws s3 sync.

10. solis: Iespējojiet pamata drošības pastiprināšanu

Ugunsmūra konfigurēšana

Instalējiet UFW un atļaujiet tikai tos portus, kas nepieciešami jūsu serverim:

    sudo ufw allow OpenSSH
    sudo ufw allow 'Nginx Full'
    sudo ufw enable

Pārbaudiet, vai noteikumi ir aktīvi:

    sudo ufw status verbose

Jums vajadzētu redzēt, ka ir atļauti porti 22 (SSH), 80 (HTTP) un 443 (HTTPS). Viena piezīme: Docker raksta savus ugunsmūra noteikumus un apiet UFW attiecībā uz publicētajiem konteineru portiem. 5678. ports paliek privāts, jo compose fails to piesaista pie 127.0.0.1, nevis UFW dēļ, tāpēc nekad nemainiet šo piesaisti uz 0.0.0.0.

Atvienojiet paroles autentifikāciju SSH

Ja izmantojat SSH atslēgas (kā tas būtu jādara), pilnībā atspējojiet paroli balstītu SSH pieteikšanos. Vispirms pārliecinieties, ka n8nuser konts var pieteikties ar jūsu atslēgu. No savas lokālās ierīces izpildiet:

    ssh-copy-id n8nuser@your_server_ip

Tad rediģējiet SSH servera konfigurāciju:

    sudo nano /etc/ssh/sshd_config

Iestatiet šādas vērtības:

    PasswordAuthentication no
    PermitRootLogin no
    sudo systemctl restart ssh

Daudzos Ubuntu mākoņattēlos failā /etc/ssh/sshd_config.d/ (bieži vien 50-cloud-init.conf) ir iestatīts PasswordAuthentication yes, un šis iestatījums ir noteicošais, jo sshd izmanto pirmo vērtību, ko tas nolasa. Pārbaudiet, kurš iestatījums faktiski ir spēkā:

    sudo sshd -T | grep -i passwordauthentication

Rezultātā jāparādās tekstam passwordauthentication no. Ja tā nav, mainiet vērtību pārrakstīšanas failā un atkārtoti restartējiet SSH.

Neaizveriet pašreizējo SSH sesiju, kamēr neesat pārliecinājies, ka pieteikšanās ar atslēgu darbojas jaunā termināļa logā.

Ierobežojiet n8n pieteikšanās lapas apmeklējumu ātrumu

Pievienojiet piekļuves ātruma ierobežojumu, lai palēninātu brute-force uzbrukumus pret n8n pieteikšanās galapunktu.

Iepazīstieties ar Ranktracker

"Viss vienā" platforma efektīvai SEO optimizācijai

Katra veiksmīga uzņēmuma pamatā ir spēcīga SEO kampaņa. Taču, ņemot vērā neskaitāmos optimizācijas rīkus un paņēmienus, var būt grūti saprast, ar ko sākt. Nu, nebaidieties, jo man ir tieši tas, kas jums palīdzēs. Iepazīstinu ar Ranktracker "viss vienā" platformu efektīvai SEO optimizācijai.

Mēs beidzot esam atvēruši reģistrāciju Ranktracker pilnīgi bez maksas!

Izveidot bezmaksas kontu

Vai Pierakstīties, izmantojot savus akreditācijas datus

**Svarīgi: **Direktīvai „limit_req_zone“ jāatrodas galvenās Nginx konfigurācijas blokā „http {}“ — nevis servera blokā. Atveriet galveno konfigurāciju:

    sudo nano /etc/nginx/nginx.conf

Pievienojiet šo rindu esošajā http {} blokā:

    http {
        ...
        limit_req_zone $binary_remote_addr zone=n8n_login:10m rate=5r/m;
        ...
    }

Tad savā n8n vietnes konfigurācijā (/etc/nginx/sites-available/n8n) pievienojiet šo location bloku servera blokā, kas klausās 443. portā (Certbot to izveidoja 6. solī), blakus esošajam location /. Nginx nepārnes proxy galvenes no location /, tāpēc tās šeit tiek atkārtotas:

    location /rest/login {
        limit_req zone=n8n_login burst=5 nodelay;
        proxy_pass http://127.0.0.1:5678;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

Lai izmaiņas stātos spēkā, pārlādējiet Nginx:

    sudo nginx -t && sudo systemctl reload nginx

Tas ierobežo katru IP adresi līdz aptuveni 5 pieteikšanās mēģinājumiem minūtē, ņemot vērā nelielu pārsnieguma iespēju.

Regulāri atjauniniet n8n un PostgreSQL

Regulāri lejupielādējiet un pārstartējiet ar jaunākajiem attēliem:

    cd ~/n8n
    docker compose pull
    docker compose up -d

Docker lejupielādīs jaunākos n8nio/n8n un postgres attēlus un pārstartēs tikai tos konteinerus, kuriem ir pieejama jaunāka versija.

Ražošanas vidē apsveriet iespēju piesaistīt n8n attēlu konkrētai versijas birkai (docker.n8n.io/n8nio/n8n:<versija>, ņemta no n8n izlaides piezīmēm) un veikt apzinātu atjaunināšanu, lai ikdienas lejupielāde nekad nepārietu uz nākamo galveno versiju, pirms esat izlasījuši izmaiņu žurnālu.

Bieži sastopamu problēmu novēršana

n8n konteiners nepārtraukti pārstartējas

Pārbaudiet konteinera žurnālus tūlīt pēc tam, kad sākas pārstartēšanas cikls:

    docker compose logs n8n --tail=100

Biežākie cēloņi:

  • Datu bāzes savienojuma kļūda: Pārliecinieties, ka PostgreSQL darbojas pareizi, izmantojot komandu `docker compose ps`. Pārbaudiet, vai POSTGRES_PASSWORD jūsu .env failā atbilst tam, ar ko tika inicializēta datu bāze.
  • Trūkst šifrēšanas atslēgas vai tā ir mainīta: ja N8N_ENCRYPTION_KEY nav iestatīts vai tika mainīts pēc pirmās palaišanas, n8n nevar atšifrēt saglabātās autentifikācijas datus un avarēs.
  • Nepietiekama RAM: PostgreSQL un n8n kopā var izmantot 1–1,5 GB RAM. Pārbaudiet pieejamo atmiņu ar komandu `free -h`.

Webhooki nedarbojas

Lai webhooki darbotos, n8n jūsu domēnā jābūt pieejamam no interneta. Pārbaudiet:

  1. Jūsu domēna DNS A ieraksts norāda uz jūsu VPS IP adresi: dig n8n.yourdomain.com
  2. Nginx darbojas: sudo systemctl status nginx
  3. 443. ports ir atvērts: sudo ufw status
  4. Vides mainīgais WEBHOOK_URL precīzi atbilst jūsu publiskajam domēnam, ieskaitot beigu slīpsvītru

n8n redaktors netiek pareizi ielādēts

Ja vizuālais redaktors ielādējas, bet parāda tukšu darba plūsmas laukumu vai reāllaika atjauninājumi vairs nedarbojas, tas nozīmē, ka WebSocket savienojums nedarbojas. Pārbaudiet, vai jūsu Nginx konfigurācijā ir iekļauts $http_upgrade bloks un vai proxy_set_header Connection rindā izmantojat mainīgo $connection_upgrade — nevis burtisko virkni “upgrade”.

SSL sertifikāta kļūdas

Ja Certbot neizdodas, parādot domēna validācijas kļūdu, pārbaudiet, vai ports 80 ir pieejams no interneta:

    curl -I http://n8n.yourdomain.com

Ja pieprasījums beidzas ar laika limitu, iespējams, ka jūsu VPS pakalpojuma sniedzēja ugunsmūris bloķē 80. portu. Papildus UFW pārbaudiet arī mākoņkonsoles ugunsmūra noteikumus.

Secinājums

n8n pašhostēšana uz Linux VPS nodrošina jums ražošanai gatavu darba plūsmas automatizācijas platformu bez izpildes ierobežojumiem, ar pilnīgu datu privātumu un elastību, lai palaistu jebkuru nepieciešamo integrāciju. Šajā rokasgrāmatā aprakstītā konfigurācija — Docker, PostgreSQL, Nginx apgrieztais starpniekserveris, Let’s Encrypt SSL, automatizētās dublējumu kopijas un drošības pastiprināšana — ir tā pati platforma, ko izmanto ražošanas vidēs, un tā sniedz jums stabilu, drošu pamatu, uz kura balstīties.

Atšķirībā no minimālās instalācijas ar Docker komandu „run“, šī konfigurācija ir veidota tā, lai izturētu servera pārstartēšanu, apstrādātu vienlaicīgas darba plūsmu izpildes un veiksmīgi atgūtos no kļūmēm. Jūsu autentifikācijas dati ir šifrēti, ik nakti tiek veikta datu dublēšana, un jūsu pieteikšanās galapunktam ir noteikts piekļuves ātruma ierobežojums, lai novērstu bruto spēka uzbrukumus.

Kad jūsu instance darbojas, iepazīstieties ar n8n iebūvētajiem mezgliem datu bāzēm, API, webhooks un AI integrācijām, lai nekavējoties sāktu automatizēt savus darba plūsmu procesus. Pašhostētais kopienas forums community.n8n.io ir arī lielisks resurss, kur smelties idejas par darba plūsmām, atrisināt problēmas ar mezgliem un iegūt padomus par ieviešanu.

Felix Rose-Collins

Felix Rose-Collins

Ranktracker's CEO/CMO & Co-founder

Felix Rose-Collins is the Co-founder and CEO/CMO of Ranktracker. With over 15 years of SEO experience, he has single-handedly scaled the Ranktracker site to over 500,000 monthly visits, with 390,000 of these stemming from organic searches each month.

Sāciet izmantot Ranktracker... Bez maksas!

Noskaidrojiet, kas kavē jūsu vietnes ranga saglabāšanu.

Izveidot bezmaksas kontu

Vai Pierakstīties, izmantojot savus akreditācijas datus

Different views of Ranktracker app