Basic Setup Video for FortiWeb
Indholdsfortegnelse:
- Forudsætninger
- Brug af Nginx som en omvendt proxy
- Passing Request Headers
- Konfiguration af Nginx som en omvendt proxy til en ikke-HTTP-proxy med proxyer
- Almindelige Nginx-omvendte proxyindstillinger
- Konklusion
En omvendt proxy er en tjeneste, der tager en klientanmodning, sender anmodningen til en eller flere proxierede servere, henter svaret og leverer serverens svar til klienten.
På grund af dens ydeevne og skalerbarhed bruges NGINX ofte som en reverse proxy til HTTP- og ikke-HTTP-servere. En typisk reverse proxy-konfiguration er at placere Nginx foran Node.js-, Python- eller Java-applikationer.
Brug af Nginx som en omvendt proxy giver dig flere ekstra fordele:
- Load Balancing - Nginx kan udføre belastningsbalancering for at distribuere klienternes anmodninger på tværs af servere, der forbedrer ydeevne, skalerbarhed og pålidelighed. Cache - Med Nginx som en omvendt proxy kan du cache de forudgivne versioner af sider for at fremskynde sideindlæsningstider. Det fungerer ved at cache-indhold modtaget fra de proxierede serveres svar og bruge det til at svare på klienter uden at skulle kontakte den proxierede server for det samme indhold hver gang. SSL-terminering - Nginx kan fungere som et SSL-endepunkt for forbindelser med klienterne. Det vil håndtere og dekryptere indgående SSL-forbindelser og kryptere den proxyserveres svar. Komprimering - Hvis den proxyerede server ikke sender komprimerede svar, kan du konfigurere Nginx til at komprimere svarene, før du sender dem til klienterne. Afbødende DDoS-angreb - Du kan begrænse de indgående anmodninger og antal forbindelser pr. Enkelt IP-adresse til en værdi, der er typisk for almindelige brugere. Nginx giver dig også mulighed for at blokere eller begrænse adgangen baseret på klientens placering, og værdien af anmodningens overskrifter, såsom "User-Agent" og "Referer".
Denne artikel beskriver de trin, der kræves for at konfigurere Nginx som en reverse proxy.
Forudsætninger
Vi antager, at du har Nginx installeret på din Ubuntu-, CentOS- eller Debian-server.
Brug af Nginx som en omvendt proxy
Hvis du vil konfigurere Nginx som en omvendt proxy til en HTTP-server, skal du åbne domænes serverblokkonfigurationsfil og angive en placering og en proxieserver inde i den:
server { listen 80; server_name www.example.com example.com; location /app { proxy_pass http://127.0.0.1:8080; } }
Den proxierede server-URL indstilles ved hjælp af
proxy_pass
direktivet og kan bruge
HTTP
eller
HTTPS
som protokol, domænenavn eller IP-adresse og en valgfri port og URI som en adresse.
Konfigurationen ovenfor fortæller Nginx at videresende alle anmodninger til
/app
placeringen til den proxierede server på
http://127.0.0.1:8080
.
/etc/nginx/conf.d
i
/etc/nginx/sites-available
bibliotek, mens de er i CentOS i
/etc/nginx/conf.d
.
For bedre at illustrere, hvordan direktiver om
location
og
proxy_pass
fungerer, lad os tage følgende eksempel:
server { listen 80; server_name www.example.com example.com; location /blog { proxy_pass http://node1.com:8000/wordpress/; } }
Hvis en besøgende får adgang til
http://example.com/blog/my-post
, proxylægger Nginx denne anmodning til
http://node1.com:8000/wordpress/my-post
.
Når adressen på den proxierede server indeholder en URI, (
/wordpress/
), erstattes anmodnings-URI, der sendes til den proxierede server, af en URI, der er specificeret i direktivet. Hvis adressen på den proxierede server specificeres uden en URI, overføres den fulde anmodning-URI til den proxierede server.
Passing Request Headers
Når Nginx fuldbyrder en anmodning, definerer den automatisk to headerfelter i en proxyerede anmodninger fra klienten,
Host
and
Connection
, og fjerner tomme overskrifter.
Host
er indstillet til variablen
$proxy_host
, og
Connection
er indstillet til at lukke.
Hvis du vil justere eller indstille overskrifter til proxierede forbindelser, skal du bruge
proxy_set_header
direktivet efterfulgt af headerværdien. Du kan finde en liste over alle tilgængelige anmodningsoverskrifter og deres tilladte værdier her. Hvis du vil forhindre, at en overskrift sendes til den næste server, skal du indstille den til en tom streng
""
.
I det følgende eksempel ændrer vi værdien af
Host
hovedfeltet til
$host
og fjerner
Accept-Encoding
overskriftsfeltet ved at indstille dets værdi til en tom streng.
location / { proxy_set_header Host $host; proxy_set_header Accept-Encoding ""; proxy_pass http://localhost:3000; }
Hver gang du ændrer konfigurationsfilen, skal du genstarte Nginx-tjenesten for at ændringerne får virkning.
Konfiguration af Nginx som en omvendt proxy til en ikke-HTTP-proxy med proxyer
Hvis du vil konfigurere Nginx som en omvendt proxy til en ikke-HTTP-proxyeret server, kan du bruge følgende direktiver:
-
fastcgi_pass
- reverse proxy til en FastCGI-server.uwsgi_pass
- reverse proxy til en uwsgi server.scgi_pass
- reverse proxy til en SCGI-server.memcached_pass
- reverse proxy til en Memcached server.
Et af de mest almindelige eksempler er at bruge Nginx som en reverse proxy til PHP-FPM:
server { #… other directives location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.2-fpm.sock; } }
Almindelige Nginx-omvendte proxyindstillinger
Servering af indhold via HTTPS er blevet en standard i dag. I dette afsnit giver vi dig et eksempel på HTTPS Nginx reverse proxy-konfiguration inklusive de anbefalede Nginx proxy-parametre og overskrifter.
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
- Definerer HTTP-protokollversionen til proxy, som standard indstillet den til 1.0. For Websockets ogkeepalive
forbindelser skal du bruge version 1.1.proxy_cache_bypass $http_upgrade
- Angiver betingelser, under hvilke svaret ikke vil blive taget fra en cache.Upgrade $http_upgrade
ogConnection "upgrade"
- Disse headerfelter er påkrævet, hvis din applikation bruger Websockets.Host $host
-$host
variablen i følgende rækkefølge af præference indeholder: hostname fra anmodningslinjen, eller hostname fraHost
request-feltet eller servernavnet, der matcher en anmodning.X-Real-IP $remote_addr
- Videresender den virkelige besøgende fjern-IP-adresse til den næste server.X-Forwarded-For $proxy_add_x_forwarded_for
- En liste, der indeholder IP-adresserne på hver server, klienten er blevet proxyet igennem.X-Forwarded-Proto $scheme
- Når det bruges i en HTTPS-serverblok, omskrives hvert HTTP-svar fra den næste server tilX-Forwarded-Host $host
- Definerer den oprindelige vært, som klienten anmoder om.X-Forwarded-Port $server_port
- Definerer den originale port, som klienten anmoder om.
Konklusion
Du har lært, hvordan du bruger Nginx som en omvendt proxy. Vi har også vist dig, hvordan du sender andre parametre til serveren og ændre og indstille forskellige overskriftsfelter i nærstående anmodninger.
nginxRapport: Google til opsætning af VC-fond

Google planlægger at starte en venturekapitalarm, rapporterede Wall Street Journal torsdag. Google planlægger at starte en venturekapitalarm, eventuelt ledet af senior vicepræsident og chefsjurist David Drummond, rapporterede Wall Street Journal torsdag.
WiMax Forum Opsætning af certificeringslaboratorium i Indien

WiMax Forum etablerer et certificeringslaboratorium i Indien efter kommunens beslutning om at afsætte spektrum til ...
Grupper Spørg Kentucky Court til Reverse Domain Seizures

Tre borgerlige frihedsgrupper indgiver en anmodning om tilbagesendelse af en dommeres ordre til fortabelse af gambling domæne ...