VPS · Útmutató

nginx reverse proxy útmutató

Frissítve October 11, 2026 5 perc olvasás

Ezen az oldalon
  1. Mit csinál a reverse proxy
  2. 1. lépés: Az nginx telepítése
  3. 2. lépés: A proxy server blokk létrehozása
  4. A fejlécek és a záró perjel
  5. WebSockets
  6. 3. lépés: Ingyenes HTTPS Certbottal
  7. Az 502, 504 és 413 hibák javítása
  8. Futtasd HytHost VPS-en
  9. GYIK

A reverse proxy az alkalmazásaid előtt áll, és továbbítja nekik a látogatók kéréseit. Ha az nginx áll elöl, egy valamilyen porton futó Node.js alkalmazásból, Docker konténerből vagy dashboardból https://app.example.com lesz, HTTPS-sel, megfelelő fejlécekkel és egyetlen helyről kezelve.

Ez az útmutató lépésről lépésre beállítja az nginxet reverse proxyként Ubuntun: a server blokkot, a fejléceket, a WebSocketeket, az ingyenes HTTPS-t és azokat a hibákat, amelyekkel a legnagyobb eséllyel találkozol.

Mit csinál a reverse proxy

  • Egyetlen nyilvános belépési pont. Az nginx a 80-as és 443-as porton figyel, és minden domaint vagy útvonalat a megfelelő alkalmazáshoz továbbít, így maguk az alkalmazások soha nem néznek ki közvetlenül az internetre.
  • HTTPS egy helyen. A tanúsítványokat az nginx kezeli; a mögötte lévő alkalmazások sima HTTP-t használhatnak localhoston.
  • Több alkalmazás egy szerveren. Az app.example.com, az api.example.com és az example.com/blog mind más-más szolgáltatáshoz vezethet.
  • Extrák: tömörítés, gyorsítótárazás, feltöltési korlátok és hozzáférési szabályok, az alkalmazás módosítása nélkül.

1. lépés: Az nginx telepítése

sudo apt update
sudo apt install nginx

Nyisd meg a http://your-server-ip címet, és meg kell jelennie az nginx üdvözlőoldalának. Ha ufw-t használsz, engedélyezd a webes forgalmat ezzel: sudo ufw allow 'Nginx Full'.

Győződj meg róla, hogy az alkalmazásod fut, és magán a szerveren elérhető, például így: curl http://127.0.0.1:3000. Ha ez nem sikerül, az nginx sem fog.

Futtasd az nginxet és az alkalmazásaidat teljes root hozzáféréssel: a HytHost KVM VPS csomagok €2.92/hó-tól indulnak.

VPS csomagok

2. lépés: A proxy server blokk létrehozása

Ubuntun minden oldal kap egy fájlt a /etc/nginx/sites-available/ mappában, amelyet egy sites-enabled alatti hivatkozás kapcsol be. Hozd létre a /etc/nginx/sites-available/app.example.com fájlt:

server {
    listen 80;
    server_name app.example.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        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;
    }
}

Kapcsold be, teszteld a konfigurációt, és töltsd újra:

sudo ln -s /etc/nginx/sites-available/app.example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Irányítsd a domain A rekordját a szerveredre, és a http://app.example.com már az alkalmazásodat mutatja. Újratöltés előtt mindig futtasd az nginx -t parancsot: kiszűri az elírásokat, mielőtt leállítanák az oldalt.

A fejlécek és a záró perjel

  • A Host továbbítja a látogató által kért domaint. Nélküle az nginx a proxy_pass címét küldi, és a hostból linkeket építő alkalmazások elromlanak.
  • Az X-Real-IP és az X-Forwarded-For továbbítja a látogató IP-címét. Nélkülük minden kérés úgy néz ki, mintha a 127.0.0.1 címről jönne.
  • Az X-Forwarded-Proto megmondja az alkalmazásnak, hogy a látogató HTTPS-t használt-e, így az nem irányít át végtelen körben.

Az Ubuntu nginx csomagja ezeket a sorokat a /etc/nginx/proxy_params fájlban szállítja, így az include proxy_params; egy rövidítés.

A záró perjel számít. Egy útvonal alatti alkalmazásnál:

location /app/ {
    proxy_pass http://127.0.0.1:3000/;
}

Ha a port után van perjel, a /app/login /login-ként érkezik az alkalmazáshoz. Nélküle az alkalmazás a teljes /app/login útvonalat kapja.

WebSockets

A chatalkalmazások, élő dashboardok és sok adminpanel WebSocketeket használ, amelyekhez két extra fejléc kell. Add hozzá ezt a mapet egyszer, a http blokkon belül, például egy új /etc/nginx/conf.d/websocket.conf fájlban:

map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

Aztán a location blokkban:

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_read_timeout 1h;

Az nginx lezárja azt a proxyzott kapcsolatot, amely 60 másodpercig semmit nem küld; a hosszabb proxy_read_timeout nyitva tartja a csendes WebSocketeket. A proxy_http_version 1.1 csak az nginx 1.29.7-től alapértelmezett, az Ubuntu 24.04 pedig az 1.24-et szállítja, ezért hagyd benne a sort.

3. lépés: Ingyenes HTTPS Certbottal

sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/local/bin/certbot
sudo certbot --nginx -d app.example.com

A Certbot ingyenes Let's Encrypt tanúsítványt szerez, hozzáadja a HTTPS-beállításokat a server blokkodhoz, és át tudja irányítani a HTTP-t HTTPS-re. A tanúsítványt automatikusan megújítja; ellenőrizd ezzel: sudo certbot renew --dry-run. A tanúsítványokról bővebben: hogyan szerezz ingyenes SSL tanúsítványt.

Az 502, 504 és 413 hibák javítása

HibaSzokásos okJavítás
502 Bad GatewayAz nginx nem éri el az alkalmazást: le van állítva, összeomlott, vagy másik porton vagy címen figyelIndítsd el az alkalmazást, ellenőrizd a portot ezzel: curl http://127.0.0.1:PORT, olvasd el a /var/log/nginx/error.log fájlt
504 Gateway TimeoutAz alkalmazásnak 60 másodpercnél tovább tartott válaszolniGyorsítsd fel a kérést, vagy növeld a proxy_read_timeout értékét az adott locationnél
413 Request Entity Too LargeA feltöltés nagyobb az nginx alapértelmezett 1 MB-os korlátjánálÁllítsd be a client_max_body_size 50m; sort a server blokkban
Átirányítási hurokAz alkalmazás nem tudja, hogy a látogató HTTPS-t használtTovábbítsd az X-Forwarded-Proto fejlécet, és jelezd az alkalmazásnak, hogy proxy mögött fut

Minden módosítás után: sudo nginx -t, majd sudo systemctl reload nginx.

Futtasd HytHost VPS-en

A reverse proxyhoz olyan szerver kell, ahol te rendelkezel a 80-as és 443-as port felett. A HytHost VPS csomagok KVM-en futnak, teljes root hozzáféréssel, SSD tárhellyel és DDoS védelemmel; válaszd az Ubuntu 24.04-et, és kövesd a fenti lépéseket. Konténerekben futtatod az alkalmazásaidat? Előbb állítsd be a Dockert a Docker telepítése Ubuntura útmutatóval, és kösd a konténerek portjait a 127.0.0.1 címre, hogy csak az nginx érje el őket.

GYIK

Gyakori kérdések

A reverse proxy egy vagy több mögötte lévő alkalmazásnak továbbítja a kéréseket. A load balancer olyan reverse proxy, amely ugyanannak az alkalmazásnak több példánya között osztja szét a kéréseket. Az nginx mindkettőre képes, egy upstream blokkal, amely felsorolja a példányokat.

Az nginx nem éri el a mögötte lévő alkalmazást. Ellenőrizd, hogy az alkalmazás fut-e, és a proxy_pass címén és portján figyel-e, a pontos okért pedig olvasd el a /var/log/nginx/error.log fájlt.

Nem, ha az alkalmazás ugyanazon a szerveren fut. Az nginx kezeli a HTTPS-t a látogatók felé, az alkalmazással pedig sima HTTP-n kommunikál a 127.0.0.1 címen, ami sosem hagyja el a gépet.

Adj minden alkalmazásnak saját server blokkot saját server_name értékkel, például app.example.com és api.example.com, mindegyiket egy másik portra mutató proxy_pass sorral.

Igen. Minden konténer portját csak a 127.0.0.1 címen tedd közzé, és irányítsd rá a proxy_pass sort. Így a konténerek nem érhetők el a nyilvános internetről, ami azért fontos, mert a Docker közzétett portjai megkerülik az ufw-t.

Futtasd alkalmazásaidat nginx mögött

A HytHost KVM VPS csomagok teljes root hozzáféréssel, SSD tárhellyel és DDoS védelemmel €2.92/hó-tól indulnak.

Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hours

Hasznos volt ez az útmutató?