What is NginX and What are its use cases?
Tartalomjegyzék:
- Előfeltételek
- Nginx használata fordított proxyként
- Kérési fejlécek átadása
- Az Nginx konfigurálása fordított proxyként egy nem HTTP-proxykiszolgálóhoz
- Általános Nginx fordított proxybeállítások
- Következtetés
A fordított proxy olyan szolgáltatás, amely egy ügyfél kérését elkapja, egy vagy több proxykiszolgálóra küldi a kérést, letölti a választ, és továbbítja a szerver válaszát az ügyféllel.
Teljesítménye és méretezhetősége miatt az NGINX-et gyakran fordított proxyként használják a HTTP és a nem HTTP szerverek számára. Egy tipikus fordított proxy-konfiguráció az, hogy az Nginx-et a Node.js, Python vagy Java alkalmazások elé helyezzük.
Az Nginx használata fordított proxyként további további előnyöket kínál:
- Terheléselosztás - A Nginx végrehajthatja a terheléselosztást az ügyfelek kéréseinek elosztása érdekében a proxykiszolgálók között, amelyek javítják a teljesítményt, méretezhetőséget és megbízhatóságot. Gyorsítótár - Az Nginx mint fordított proxy, gyorsítótárazhatja az oldalak előre elkészített verzióit, hogy felgyorsítsa az oldalak betöltési idejét. Úgy működik, hogy gyorsítótárazza a proxykiszolgálók válaszaiból kapott tartalmat és felhasználja az ügyfeleknek való válaszadásra anélkül, hogy minden alkalommal ugyanazzal a tartalommal kellene kapcsolatba lépnie a proxykiszolgálóval. SSL-lezárás - Az Nginx SSL-végpontként szolgálhat az ügyfelekkel való kapcsolatok kialakításához. Kezelni fogja és visszafejti a bejövő SSL kapcsolatokat, és titkosítja a proxykiszolgáló válaszát. Tömörítés - Ha a proxykiszolgáló nem küld tömörített válaszokat, beállíthatja az Nginxet, hogy a válaszokat tömörítse, mielőtt elküldi őket az ügyfeleknek. A DDoS támadások enyhítése - A bejövő kéréseket és a kapcsolatok számát egyetlen IP-címre korlátozhatja a szokásos felhasználókra jellemző értékre. Az Nginx lehetővé teszi a hozzáférés blokkolását vagy korlátozását az ügyfél helye és a kérés fejlécei, például a „User-Agent” és a „Referer” értéke alapján.
Ez a cikk ismerteti az Nginx fordított proxyként történő konfigurálásához szükséges lépéseket.
Előfeltételek
Feltételezzük, hogy az Nginx telepítve van az Ubuntu, CentOS vagy Debian szerverre.
Nginx használata fordított proxyként
Az Nginx HTTP-kiszolgáló fordított proxyként történő konfigurálásához nyissa meg a tartomány szerverblokkjának konfigurációs fájlját, és adja meg a benne lévő helyet és egy proxykiszolgálót:
server { listen 80; server_name www.example.com example.com; location /app { proxy_pass http://127.0.0.1:8080; } }
A
proxy_pass
URL-jét a
proxy_pass
irányelv alapján
proxy_pass
és
HTTP
vagy
HTTPS
protokollt, tartománynevet vagy IP-címet, valamint opcionális portot és URI-t használhatnak címként.
A fenti konfiguráció azt mondja az Nginxnek, hogy minden kérést továbbítson az
/app
helyére a proxykiszolgálóra a
http://127.0.0.1:8080
címen.
/etc/nginx/sites-available
könyvtárban tárolják, a CentOS pedig az
/etc/nginx/conf.d
könyvtárban.
A
proxy_pass
és a
proxy_pass
irányelvek működésének jobb bemutatása érdekében vegyük a következő példát:
server { listen 80; server_name www.example.com example.com; location /blog { proxy_pass http://node1.com:8000/wordpress/; } }
Ha egy látogató hozzáfér a
http://example.com/blog/my-post
webhelyhez, akkor az Nginx proxikálja ezt a kérést a
http://node1.com:8000/wordpress/my-post
.
Ha a proxykiszolgáló címe tartalmaz URI-t (
/wordpress/
), akkor a proxykiszolgálónak átadott kérés-URI helyébe az irányelvben meghatározott URI lép. Ha a proxykiszolgáló címe URI nélkül van megadva, akkor a teljes kérelem URI kerül a proxykiszolgálóra.
Kérési fejlécek átadása
Amikor az Nginx proxyt küld egy kérésnek, akkor automatikusan két fejléc mezőt határoz meg az ügyféllel szemben lévő proxed kérésekben, a
Host
és a
Connection
, és eltávolítja az üres fejléceket.
Host
a
$proxy_host
változóra állítja, a
Connection
pedig bezáródik.
A
proxy_set_header
kapcsolatok fejléceinek beállításához vagy beállításához használja a
proxy_set_header
irányelvet, amelyet a fejléc érték követ. Az összes elérhető kérelem fejlécét és azok megengedett értékeit itt találja. Ha megakadályozni szeretné, hogy a fejléc továbbadjon a proxykiszolgálóhoz, állítsa be egy üres
""
karakterláncra.
A következő példában a
Host
fejléc mező értékét
$host
és az
Accept-Encoding
fejléc mezőt eltávolítjuk az érték üres karakterláncra állításával.
location / { proxy_set_header Host $host; proxy_set_header Accept-Encoding ""; proxy_pass http://localhost:3000; }
A konfigurációs fájl módosításakor újra kell indítania az Nginx szolgáltatást, hogy a változások érvénybe lépjenek.
Az Nginx konfigurálása fordított proxyként egy nem HTTP-proxykiszolgálóhoz
Ha az Nginxet nem HTTP-proxykiszolgáló fordított proxyjává kívánja konfigurálni, akkor a következő irányelveket használhatja:
-
fastcgi_pass
- proxy visszaváltása egy FastCGI szerverre.uwsgi_pass
- fordított proxy egy uwsgi szerverhez.scgi_pass
- fordított proxy egy SCGI szerverhez.memcached_pass
- fordított proxy egy Memcached szerverhez.
Az egyik leggyakoribb példa az Nginx használata a PHP-FPM fordított proxyként:
server { #… other directives location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.2-fpm.sock; } }
Általános Nginx fordított proxybeállítások
A tartalom HTTPS-en keresztüli kiszolgálása manapság szabványossá vált. Ebben a szakaszban példát adunk a HTTPS Nginx fordított proxy konfigurációjára, beleértve az ajánlott Nginx proxy paramétereket és fejléceket.
location/ { proxy_pass http://127.0.0.1:3000; proxy_http_version 1.1; proxy_cache_bypass $http_upgrade; proxy_set_header Upgrade $http_upgrade; proxy_set_header 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; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Port $server_port; }
-
proxy_http_version 1.1
- meghatározza aproxy_http_version 1.1
HTTP protokoll verzióját, alapértelmezés szerint 1.0-ra állítva. Internetes kapcsolatokhoz és folyamatos kapcsolatokhoz az 1.1-es verziót kell használni.proxy_cache_bypass $http_upgrade
- Beállítja azokat a feltételeket, amelyek mellett a válasz nem kerül gyorsítótárból.Upgrade $http_upgrade
és aConnection "upgrade"
- Ezekre a fejlécmezőkre szükség van, ha az alkalmazás webkapcsolatokat használ.Host $host
- A$host
változó a következő fontossági sorrendben tartalmazza: hostnév a kérelem sorából, vagy hostnév aHost
kérés fejlécében, vagy a kiszolgáló neve, amely megegyezik a kéréssel.X-Real-IP $remote_addr
- Az igazi látogató távoli IP-címét továbbítja a proxykiszolgálóra.X-Forwarded-For $proxy_add_x_forwarded_for
-X-Forwarded-For $proxy_add_x_forwarded_for
kiszolgálók IP-címeit tartalmazó lista, amelyeken az ügyfélX-Forwarded-For $proxy_add_x_forwarded_for
került.X-Forwarded-Proto $scheme
- Amikor egy HTTPS szerverblokkban használják, a proxykiszolgáló minden HTTP válaszát átírja aX-Forwarded-Host $host
- meghatározza az ügyfél által kért eredeti gazdagépet.X-Forwarded-Port $server_port
- meghatározza az ügyfél által igényelt eredeti portot.
Következtetés
Megtanulta az Nginx használatát fordított proxyként. Megmutattuk Önnek, hogyan továbbíthat további paramétereket a kiszolgálóra, és hogyan módosíthatja és beállíthatja a különböző fejléc mezőket a proxy-kérésekben.
nginxSaját eszköz beállítása és beállítása Windows 10-ben
Ismerje meg, hogyan állíthatja be a készüléket a BYOD (Saját eszköz) a munkahelyén. Könnyen hozzáadhat munka- és iskolai fiókokat.
A Proxy beállítása a Windows Store alkalmazásokhoz a Windows 8/10-ben
Ismerje meg, hogyan engedélyezheti vagy konfigurálhatja a Proxy szervert a Store vagy Metro alkalmazások Windows 8/8-ban a Netsh parancs, a Proxy beállítások vagy a csoportházirend-beállítások használatával.
Konfigurálja az odoo-t az nginx-rel fordított proxyként
Az Odoo beépített webszerverrel rendelkezik, de a legtöbb esetben javasoljuk, hogy legyen egy fordított proxy, amely közvetítőként szolgál majd az ügyfelek és az Odoo szerver között. Ez az útmutató útmutatást nyújt az Nginx Odoo fordított proxyjának használatához.