Реклама подобрана на основе следующей информации:
Innehållsförteckning:
- förutsättningar
- Använda Nginx som en omvänd proxy
- Passerar begäran rubriker
- Konfigurera Nginx som en omvänd proxy till en server som inte är HTTP
- Vanliga Nginx-omvända proxyalternativ
- Slutsats
En omvänd proxy är en tjänst som tar en klientförfrågan, skickar förfrågan till en eller flera proxierade servrar, hämtar svaret och levererar serverns svar till klienten.
På grund av dess prestanda och skalbarhet används NGINX ofta som en omvänd proxy för HTTP- och icke-HTTP-servrar. En typisk omvänd proxy-konfiguration är att placera Nginx framför Node.js, Python eller Java-applikationer.
Att använda Nginx som en omvänd proxy ger dig flera ytterligare fördelar:
- Load Balancing - Nginx kan utföra belastningsbalansering för att distribuera klienters förfrågningar över proxierade servrar, vilket förbättrar prestanda, skalbarhet och tillförlitlighet. Caching - Med Nginx som en omvänd proxy kan du cache de förhandlade versionerna av sidor för att påskynda sidbelastningstider. Det fungerar genom att cache-lagra innehållet som mottas från de proxierade servrarnas svar och använda det för att svara på klienter utan att behöva kontakta den proxyerade servern för samma innehåll varje gång. SSL-terminering - Nginx kan fungera som en SSL-slutpunkt för anslutningar med klienterna. Den kommer att hantera och dekryptera inkommande SSL-anslutningar och kryptera den proxyerade serverns svar. Komprimering - Om den proxyerade servern inte skickar komprimerade svar kan du konfigurera Nginx så att de komprimerar svaren innan du skickar dem till klienterna. Dämpande DDoS-attacker - Du kan begränsa inkommande förfrågningar och antal anslutningar per IP-adress till ett värde som är vanligt för vanliga användare. Nginx tillåter dig också att blockera eller begränsa åtkomst baserat på klientens plats och värdet på förfrågningsrubrikerna som "User-Agent" och "Referer".
Den här artikeln beskriver stegen som krävs för att konfigurera Nginx som en omvänd proxy.
förutsättningar
Vi antar att du har Nginx installerat på din Ubuntu-, CentOS- eller Debian-server.
Använda Nginx som en omvänd proxy
Om du vill konfigurera Nginx som en omvänd proxy till en HTTP-server öppnar du domänens serverblockkonfigurationsfil och anger en plats och en proxierad server inuti den:
server { listen 80; server_name www.example.com example.com; location /app { proxy_pass http://127.0.0.1:8080; } }
Den proxyerade webbadressen ställs in med hjälp av
proxy_pass
direktivet och kan använda
HTTP
eller
HTTPS
som protokoll, domännamn eller IP-adress, och en valfri port och URI som adress.
Konfigurationen ovan berättar för Nginx att överföra alla förfrågningar till
/app
platsen till den proxyerade servern på
http://127.0.0.1:8080
.
/etc/nginx/conf.d
katalogen
/etc/nginx/sites-available
, medan de finns i CentOS i
/etc/nginx/conf.d
.
För att bättre illustrera hur
proxy_pass
och
proxy_pass
direktiv fungerar, låt oss ta följande exempel:
server { listen 80; server_name www.example.com example.com; location /blog { proxy_pass http://node1.com:8000/wordpress/; } }
Om en besökare kommer åt
http://example.com/blog/my-post
kommer Nginx att proxy denna begäran till
http://node1.com:8000/wordpress/my-post
.
När adressen till den proxyerade servern innehåller en URI, (
/wordpress/
), ersätts begäran URI som skickas till den proxyerade servern av en URI som anges i direktivet. Om adressen till den proxierade servern anges utan en URI, skickas den fullständiga begäran URI till den proxyerade servern.
Passerar begäran rubriker
När Nginx lägger fram en begäran definierar den automatiskt två rubrikfält i en proxyerad begäran från klienten,
Host
and
Connection
och tar bort tomma rubriker.
Host
är inställd på
$proxy_host
variabeln och
Connection
är inställd på att stängas.
Om du vill justera eller ställa in rubriker för proxyerade anslutningar använder du
proxy_set_header
direktivet följt av rubrikvärdet. Här hittar du en lista över alla tillgängliga begärhuvud och deras tillåtna värden. Om du vill förhindra att en rubrik skickas till den proxyerade servern, ställ in den till en tom sträng
""
.
I följande exempel ändrar vi värdet på fältet värdhuvud till
$host
och tar bort huvudfältet
Accept-Encoding
genom att sätta värdet till en tom sträng.
location / { proxy_set_header Host $host; proxy_set_header Accept-Encoding ""; proxy_pass http://localhost:3000; }
När du ändrar konfigurationsfilen måste du starta om Nginx-tjänsten för att ändringarna ska träda i kraft.
Konfigurera Nginx som en omvänd proxy till en server som inte är HTTP
För att konfigurera Nginx som en omvänd proxy till en icke-HTTP-proxyerad server kan du använda följande direktiv:
-
fastcgi_pass
- omvänd proxy till en FastCGI-server.uwsgi_pass
- omvänd proxy till en uwsgi-server.scgi_pass
- omvänd proxy till en SCGI-server.memcached_pass
- omvänd proxy till en Memcached-server.
Ett av de vanligaste exemplen är att använda Nginx som en omvänd proxy till PHP-FPM:
server { #… other directives location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.2-fpm.sock; } }
Vanliga Nginx-omvända proxyalternativ
Att servera innehåll via HTTPS har blivit en standard nuförtiden. I det här avsnittet kommer vi att ge dig ett exempel på HTTPS Nginx reverse proxy-konfiguration inklusive de rekommenderade Nginx-proxyparametrarna och rubrikerna.
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
- Definierar HTTP-protokollversionen för proxysättning, den är som standard inställd på 1.0. För Websockets ochkeepalive
anslutningar måste du använda version 1.1.proxy_cache_bypass $http_upgrade
- Ställer in villkor under vilka svaret inte kommer att tas från en cache.Upgrade $http_upgrade
ochConnection "upgrade"
- Dessa rubrikfält krävs om din applikation använder Websockets.Host $host
-$host
värdvariabeln i följande ordningsföljd innehåller: värdnamn från förfrågningsraden, eller värdnamn från värdfältets huvudfält, eller servernamnet som matchar en begäran.X-Real-IP $remote_addr
-X-Real-IP $remote_addr
den verkliga besökarens fjärr-IP-adress till den proxyerade servern.X-Forwarded-For $proxy_add_x_forwarded_for
- En lista som innehåller IP-adresserna för varje server som klienten har blivit proxyerad genom.X-Forwarded-Proto $scheme
- När det används i ett HTTPS-serverblock skrivs varje HTTP-svar från den proxyerade servern tillX-Forwarded-Host $host
- Definierar den ursprungliga värden som klienten begär.X-Forwarded-Port $server_port
- Definierar den ursprungliga porten som klienten begär.
Slutsats
Du har lärt dig hur du använder Nginx som en omvänd proxy. Vi har också visat dig hur du skickar ytterligare parametrar till servern och ändrar och ställer in olika rubrikfält i proxyer.
nginxKabelvision för att starta omvänd fjärr-DVR i sommar
Cablevision är inställd på att uträtta en DVR-tjänst som lagrar video på distans med kabelföretaget. Tids att säga farväl till din Tivo?
I det här inlägget ser vi hur du kan begränsa eller ställa in en tidsgräns för något användarkonto i Windows 10 / 8/7, med kommandot Net User. Netanvändare är ett kommandoradsverktyg som hjälper systemadministratörer till att lägga till eller ändra användarkontobeteende. Vi har redan tittat på några nätverkskommandon för administratörer, nu kan vi se hur du ställer in tidsgränser för lokala konton.
Begränsa eller ställa in tidsgräns för användarkonton
Konfigurera odoo med nginx som en omvänd proxy
Odoo kommer med en inbyggd webbserver, men i de flesta fall rekommenderas det att ha en omvänd proxy framför sig som kommer att fungera som en mellanhand mellan klienterna och Odoo-servern. Den här guiden innehåller instruktioner om hur du använder Nginx som en omvänd proxy till Odoo.