GITHUB ATOM - Why Atom.io will be your favorite Text Editor!
Sadržaj:
- Preduvjeti
- Korištenje Nginxa kao obrnutog proxyja
- Prolazak zaglavlja zahtjeva
- Konfiguriranje Nginxa kao obrnutog proxyja na ne-HTTP proxy poslužitelju
- Uobičajene opcije za povratne proxy Nginx
- Zaključak
Obrnuti proxy je usluga koja uzima zahtjev klijenta, šalje zahtjev na jedan ili više proxy poslužitelja, dohvaća odgovor i isporučuje klijentov odgovor klijentu.
Zbog svojih performansi i skalabilnosti, NGINX se često koristi kao obrnuti proxy za HTTP i ne-HTTP poslužitelje. Tipična obrnuta konfiguracija proxyja je staviti Nginx ispred Node.js, Python ili Java aplikacija.
Korištenje Nginx-a kao obrnutog proxyja pruža vam nekoliko dodatnih prednosti:
- Load Balancing - Nginx može izvesti uravnoteženje opterećenja radi distribucije zahtjeva klijenata na proxy poslužiteljima, što poboljšava performanse, skalabilnost i pouzdanost. Predmemoriranje - Uz Nginx kao obrnuti proxy možete spremiti unaprijed spremljene verzije stranica kako biste ubrzali vrijeme učitavanja stranica. Djeluje tako da kešira sadržaj primljen iz odgovora proxy poslužitelja i koristi ga za odgovaranje klijentima bez potrebe da svaki put kontaktira proxy poslužitelj za isti sadržaj. Prekid SSL - Nginx može djelovati kao SSL krajnja točka za veze s klijentima. Rukovat će i dešifrirati dolazne SSL veze i šifrirati odgovore proxy poslužitelja. Kompresija - Ako proxy poslužitelj ne šalje komprimirane odgovore, možete konfigurirati Nginx da komprimira odgovore prije nego što ih pošalje klijentima. Ublažavanje DDoS napada - Dolazne zahtjeve i broj veza po jednoj IP adresi možete ograničiti na vrijednost tipičnu za redovne korisnike. Nginx vam također omogućuje blokiranje ili ograničavanje pristupa na temelju lokacije klijenta i vrijednosti zaglavlja zahtjeva, poput "User-Agent" i "Referer".
U ovom su članku opisani koraci potrebni za konfiguriranje Nginxa kao obrnutog proxyja.
Preduvjeti
Pretpostavljamo da ste na vašem Ubuntu, CentOS ili Debian poslužitelju instalirali Nginx.
Korištenje Nginxa kao obrnutog proxyja
Da biste konfigurirali Nginx kao obrnuti proxy na HTTP poslužitelju, otvorite datoteku konfiguracijske datoteke bloka poslužitelja i unutar nje odredite lokaciju i proxy poslužitelj:
server { listen 80; server_name www.example.com example.com; location /app { proxy_pass http://127.0.0.1:8080; } }
URL proxy poslužitelja je postavljen pomoću
proxy_pass
direktive i može koristiti
HTTP
ili
HTTPS
kao protokol, naziv domene ili IP adresu i neobavezni port i URI kao adresu.
Gornja konfiguracija upućuje Nginx da proslijedi sve zahtjeve na
/app
lokaciju proxy poslužitelju na
http://127.0.0.1:8080
.
/etc/nginx/sites-available
, dok se u CentOS u
/etc/nginx/conf.d
direktoriju.
Da bismo bolje ilustrirali kako
proxy_pass
direktive o
location
i
proxy_pass
, uzmimo sljedeći primjer:
server { listen 80; server_name www.example.com example.com; location /blog { proxy_pass http://node1.com:8000/wordpress/; } }
Ako posjetitelj pristupi
http://example.com/blog/my-post
, Nginx će taj zahtjev proslijediti na
http://node1.com:8000/wordpress/my-post
.
Kad adresa proxy poslužitelja sadrži URI, (
/wordpress/
), URI zahtjeva koji se prosljeđuje poslužitelju zamjenjuje URI navedenim u direktivi. Ako je adresa proxy poslužitelja navedena bez URI-ja, potpuni URI zahtjeva prosljeđuje se proxy-poslužitelju.
Prolazak zaglavlja zahtjeva
Kad Nginx posreduje zahtjevu, automatski definira dva polja zaglavlja u proxy zahtjevima klijenta,
Host
i
Connection
i uklanja prazna zaglavlja.
Host
je postavljen na varijablu
$proxy_host
, a
Connection
je zatvorena.
Da biste prilagodili ili postavili zaglavlja za proxy veze, koristite direktivu
proxy_set_header
, nakon čega slijedi vrijednost zaglavlja. Ovdje možete pronaći popis svih dostupnih zaglavlja zahtjeva i njihovih dopuštenih vrijednosti. Ako želite spriječiti prosljeđivanje zaglavlja na proxy poslužitelju, postavite ga u prazan niz
""
.
U sljedećem primjeru mijenjamo vrijednost polja zaglavlja
Host
u
$host
i uklanjamo polje zaglavlja
Accept-Encoding
postavljanjem njegove vrijednosti u prazan niz.
location / { proxy_set_header Host $host; proxy_set_header Accept-Encoding ""; proxy_pass http://localhost:3000; }
Kad god izmijenite konfiguracijsku datoteku, morate ponovo pokrenuti Nginx uslugu da bi promjene stupile na snagu.
Konfiguriranje Nginxa kao obrnutog proxyja na ne-HTTP proxy poslužitelju
Da biste konfigurirali Nginx kao obrnuti proxy na ne-HTTP proxy poslužitelju, možete koristiti sljedeće direktive:
-
fastcgi_pass
- povratni proxy na FastCGI poslužitelj.uwsgi_pass
- preokrenuti proxy na uwsgi poslužitelj.scgi_pass
- preokrenuti proxy na SCGI poslužitelj.memcached_pass
- preokrenuti proxy namemcached_pass
poslužitelj.
Jedan od najčešćih primjera je korištenje Nginx-a kao obrnutog proxyja za PHP-FPM:
server { #… other directives location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.2-fpm.sock; } }
Uobičajene opcije za povratne proxy Nginx
Posluživanje sadržaja putem HTTPS-a postalo je standard u današnje vrijeme. U ovom ćemo dijelu dati primjer HTTPS Nginx konfiguracije proxy proxyja, uključujući preporučene Nginx proxy parametre i zaglavlja.
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
- Definira verziju HTTP protokola za približavanje, prema zadanim postavkama postavljenu na 1, 0. Za Websockets ikeepalive
veze trebate koristiti verziju 1.1.proxy_cache_bypass $http_upgrade
- Postavlja uvjete pod kojima odgovor neće biti uzet iz predmemorije.Upgrade $http_upgrade
iConnection "upgrade"
- ovaUpgrade $http_upgrade
polja obavezna su ako vaša aplikacija koristi Websockets.Host $host
- Promjena$host
u sljedećem redoslijedu prioriteta sadrži: ime hosta iz retka zahtjeva ili ime računala iz polja zaglavlja zahtjevaHost
ili naziv poslužitelja koji odgovara zahtjevu.X-Real-IP $remote_addr
-X-Real-IP $remote_addr
stvarnu udaljenu IP adresu proxy poslužitelja.X-Forwarded-For $proxy_add_x_forwarded_for
- Popis koji sadrži IP adrese svakog poslužitelja kroz koji se klijent proxy.X-Forwarded-Proto $scheme
- Kada se koristi unutar bloka HTTPS poslužitelja, svaki HTTP odgovor proxyed poslužitelja prepisuje se naX-Forwarded-Host $host
- Definira izvorni host koji zahtijeva klijent.X-Forwarded-Port $server_port
- Definira izvorni port koji traži klijent.
Zaključak
Naučili ste kako koristiti Nginx kao obrnuti proxy. Također smo vam pokazali kako proslijediti dodatne parametre na poslužitelju te mijenjati i postavljati različita polja zaglavlja u proxied zahtjevima.
NginxOmogućite, onemogućite predmemoriranje automatskog proxyja u programu Internet Explorer

Ovaj vodič će vam omogućiti omogućavanje ili onemogućavanje automatskog proxy posredovanja u programu Internet Explorer,
Koristite aplikaciju Postavljanje školskih računala za postavljanje Windows računala u školama

Koristite ga za brzo postavljanje računala sa sustavom Windows 10 za bolje mogućnosti učenja za učenike.
Kompletni vodič za provođenje obrnutog pretraživanja slike

Saznajte o korištenju Google pretraživanja slika i TinEye za pretraživanje obrnute slike na webu.