Fordított proxy létrehozása az Nginxben

Az NGINX egy sokoldalú és nagy teljesítményű webszerver, amelyet széles körben használnak fordított proxyszerverként. A fordított proxy az ügyfélkérelmek közvetítője, amely elosztja azokat egy vagy több háttérkiszolgálóhoz. Ez a beállítás előnyös a terheléselosztásban, javítja a biztonságot és magas szintű rendelkezésre állást biztosít. Az NGINX fordított proxyként való használata javíthatja a webszolgáltatások méretezhetőségét és megbízhatóságát.

Ez az útmutató bemutatja, hogyan hozhat létre fordított proxyt az NGINX-ben, és bemutatja a szükséges konfigurációs lépéseket az ügyfélkérések hatékony továbbításához a háttérkiszolgálókhoz.

Hozzon létre és konfiguráljon fordított proxyt az Nginxben

Egy alapvető fordított proxy beállítása az Nginxben

Először is, az Nginx fordított proxyként való konfigurálásához nyissa meg az Nginx konfigurációs fájlját. Ez a fájl általában az /etc/nginx/nginx.conf címen található. Nyissa meg a kívánt szövegszerkesztővel, például a sudo Nano használatával:

sudo nano /etc/nginx/nginx.conf

A konfigurációs fájlban fókuszáljon a http blokkra. Itt beilleszt egy szerverblokkot, amely a fordított proxy beállításának sarokköve. A szerverblokk egy megadott porton, általában a 80-as porton figyel a HTTP-forgalomra. Ezen a blokkon belül a hely/irányelv megmondja az Nginx-nek, hogyan kezelje a bejövő kéréseket. A proxy_pass direktíva segítségével irányítsa át ezeket a kéréseket a háttérkiszolgálóra, annak IP-címével vagy gazdagépnevével.

A konfiguráció például így nézhet ki:

http {
    ...
    server {
        listen 80;
        location / {
            proxy_pass http://backendserver_address;
        }
    }
}

Ne felejtse el lecserélni a backendserver_address címét a háttérkiszolgáló tényleges címére. Ez az egyszerű beállítás arra utasítja az Nginxet, hogy továbbítsa az összes bejövő HTTP-kérést a megadott háttérkiszolgálóhoz.

Speciális fordított proxykonfiguráció az Nginxben

Speciálisabb beállítás esetén érdemes lehet a fordított proxy további szempontjait is konfigurálni. Ez magában foglalhatja a terheléselosztás, az SSL-lezárás vagy a gyorsítótárazás beállításait.

A terheléselosztás megvalósítása

Ha több háttérkiszolgálót üzemeltet, az Nginx el tudja osztani a bejövő forgalmat közöttük, növelve a teljesítményt és a megbízhatóságot. A terheléselosztáshoz módosítania kell a proxy_pass direktívát, hogy az egy upstream blokkban meghatározott kiszolgálócsoportra mutasson. Például:

http {
    upstream backend_servers {
        server backend1.example.com;
        server backend2.example.com;
    }

    server {
        listen 80;
        location / {
            proxy_pass http://backend_servers;
        }
    }
}

Ez a konfiguráció lehetővé teszi az Nginx számára, hogy kiegyensúlyozza a backend1.example.com és a backend2.example.com közötti terhelést.

SSL-lezárás konfigurálása

Az SSL leállításához győződjön meg arról, hogy a kiszolgálóblokk a 443-as porton figyel, és tartalmazza az SSL-tanúsítványt és a kulcsfájlok helyét. A konfiguráció hasonlíthat:

server {
    listen 443 ssl;
    ssl_certificate /path/to/certificate.pem;
    ssl_certificate_key /path/to/key.pem;

    location / {
        proxy_pass http://backendserver_address;
    }
}

Ez a beállítás lehetővé teszi az Nginx számára, hogy kezelje az SSL-kapcsolatokat és visszafejtse a kéréseket, mielőtt átadná azokat a háttérkiszolgálóknak.

Változások véglegesítése

Az Nginx konfigurálása után tesztelje a konfigurációt szintaktikai hibákra a következővel:

nginx -t

Ha a teszt sikeres, töltse be újra az Nginxet a módosítások alkalmazásához a következő módon:

sudo systemctl reload nginx

Ez a lépés biztosítja, hogy a változtatások az aktuális kapcsolatok megszakítása nélkül lépjenek életbe.

További ismeretek: Az Nginx proxy fejléc értékeinek beállítása

Amikor az Nginxet fordított proxyként konfigurálja, fontos, hogy helyesen állítsa be a proxyfejléc értékeit. Ezek a fejlécek kulcsfontosságúak az eredeti ügyfélkérelem részleteinek a háttérkiszolgálókhoz való továbbításához. Ezek az információk magukban foglalhatják az ügyfél IP-címét, a kérés eredeti protokollját stb. E fejlécek megfelelő beállítása biztosítja, hogy a háttérkiszolgálók rendelkezzenek a kérések megfelelő megválaszolásához szükséges kontextussal.

A proxy fejlécek értelmezése

A proxy fejlécek elengedhetetlenek a fordított proxy beállításánál, mivel információkat tartalmaznak az ügyfél eredeti kéréséről. Ezek az információk szükségesek ahhoz, hogy a háttérkiszolgálók megalapozott döntéseket hozzanak a bejövő kérések kezelésével kapcsolatban. Például az ügyfél eredeti IP-címének ismerete fontos lehet naplózási, elemzési vagy biztonsági okokból.

Közös proxyfejléc-konfigurációk

Néhány gyakori proxyfejléc, amelyet az Nginxben konfigurálhat, a következők:

  • X-Real-IP: Ez a fejléc az eredeti kliens IP-címének átadására szolgál a háttérkiszolgálónak.
  • X-Forwarded-For: Hasonló X-Real-IP, ez a fejléc tartalmazza azon szerverek listáját, amelyeken a kérés áthaladt, beleértve az ügyfél IP-címét is.
  • X-Forwarded-Proto: Ez a fejléc az ügyfél eredeti kérésében használt protokollt (HTTP vagy HTTPS) jelzi.

A proxy fejléc beállításainak megvalósítása az Nginxben

Ha be szeretné állítani ezeket a fejléceket az Nginx konfigurációjában, módosítania kell a helyblokkot a szerverblokkon belül. Íme egy példa arra, hogyan állíthatja be ezeket a fejléceket:

server {
    listen 80;
    location / {
        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;
        proxy_pass http://backendserver_address;
    }
}

Ebben a konfigurációban a $remote_addr és a $scheme változók, amelyeket az Nginx automatikusan kitölt az ügyfél IP-címével és a kérés sémájával (HTTP vagy HTTPS).

A proxyfejlécek bevált gyakorlatai

A proxy fejlécek konfigurálásakor fontos figyelembe venni a továbbított információk biztonságát és pontosságát. Az esetleges hamisítás elkerülése érdekében győződjön meg arról, hogy a háttérkiszolgálók úgy vannak beállítva, hogy csak akkor bízzanak meg ezekben a fejlécekben, amikor azok az Nginx fordított proxyjától származnak.

Következtetés

Ha sikeresen konfigurálja az NGINX-et fordított proxyként, optimalizálhatja webes infrastruktúráját a jobb teljesítmény, biztonság és méretezhetőség érdekében. Rendszeresen figyelje és módosítsa konfigurációját az optimális terheléselosztás és válaszidő biztosítása érdekében. A fordított proxy megvalósítása az NGINX-szel robusztus megoldást kínál az ügyfélkérelmek kezelésére és a webszolgáltatások magas rendelkezésre állásának fenntartására.

Joshua James

Szólj hozzá!