Sisällysluettelo:
- edellytykset
- Nginxin käyttäminen käänteisenä välityspalvelimena
- Pyyntöotsikoiden hyväksyminen
- Nginxin määrittäminen käänteisenä välityspalvelimena ei-HTTP-välityspalvelimelle
- Yleiset Nginx-käänteisen välityspalvelimen vaihtoehdot
- johtopäätös
Käänteinen välityspalvelin on palvelu, joka ottaa asiakaspyynnön, lähettää pyynnön yhdelle tai useammalle välityspalvelimelle, hakee vastauksen ja toimittaa palvelimen vastauksen asiakkaalle.
Suorituskykynsä ja skaalautuvuutensa vuoksi NGINX: ää käytetään usein käänteisenä välityspalvelimena HTTP- ja muille kuin HTTP-palvelimille. Tyypillinen käänteisen välityspalvelimen kokoonpano on asettaa Nginx Node.js-, Python- tai Java-sovellusten eteen.
Nginxin käyttäminen käänteisenä välityspalvelimena antaa sinulle useita lisäetuja:
- Kuormituksen tasapainotus - Nginx voi suorittaa kuormituksen tasapainottamisen jakaaksesi asiakkaiden pyyntöjä välityspalvelimille, mikä parantaa suorituskykyä, skaalautuvuutta ja luotettavuutta. Välimuisti - Kun Nginx on käänteinen välityspalvelin, voit välimuistiin sivujen esimuotoillut versiot nopeuttaa sivujen latausaikoja. Se toimii tallentamalla välimuisti välityspalvelimien vastauksista vastaanotetun sisällön ja käyttämällä sitä vastaamaan asiakkaille tarvitsematta ottaa yhteyttä välityspalvelimeen samaa sisältöä joka kerta. SSL-lopettaminen - Nginx voi toimia SSL-päätepisteenä yhteyksissä asiakkaiden kanssa. Se käsittelee ja purkaa saapuvat SSL-yhteydet ja salaa välityspalvelimen vastaukset. Pakkaus - Jos välityspalvelin ei lähetä pakattuja vastauksia, voit määrittää Nginxin pakkaamaan vastaukset ennen niiden lähettämistä asiakkaille. DDoS-hyökkäysten lieventäminen - Voit rajoittaa saapuvat pyynnöt ja yhteyksien määrän yhtä IP-osoitetta kohti tavallisille käyttäjille tyypilliseen arvoon. Nginx antaa sinun myös estää tai rajoittaa pääsyä asiakkaan sijainnin ja pyyntöotsikoiden, kuten “User-Agent” ja “Referrer”, perusteella.
Tässä artikkelissa kuvataan vaiheet, joita tarvitaan Nginxin määrittämiseen käänteiseksi välityspalvelimeksi.
edellytykset
Oletamme, että Nginx on asennettu Ubuntu-, CentOS- tai Debian-palvelimelle.
Nginxin käyttäminen käänteisenä välityspalvelimena
Jos haluat määrittää Nginxin käänteisenä välityspalvelimena HTTP-palvelimelle, avaa verkkotunnuksen palvelinlohkon määritystiedosto ja määritä sijainti ja välityspalvelin sen sisällä:
server { listen 80; server_name www.example.com example.com; location /app { proxy_pass http://127.0.0.1:8080; } }
Välityspalvelimen URL-osoite asetetaan käyttämällä
proxy_pass
-direktiiviä, ja se voi käyttää
HTTP
tai
HTTPS
protokollaa, toimialueen nimeä tai IP-osoitetta ja valinnaista porttia ja URI-osoitetta.
Yllä oleva kokoonpano kertoo Nginxin lähettävän kaikki pyynnöt
/app
sijaintiin välityspalvelimelle osoitteessa
http://127.0.0.1:8080
.
/etc/nginx/sites-available
, kun taas CentOS-hakemistossa
/etc/nginx/conf.d
.
Otetaan seuraava esimerkki, jotta
proxy_pass
paremmin
proxy_pass
miten
location
ja
proxy_pass
toimivat:
server { listen 80; server_name www.example.com example.com; location /blog { proxy_pass http://node1.com:8000/wordpress/; } }
Jos vierailija käyttää
http://example.com/blog/my-post
, Nginx välittää tämän pyynnön osoitteeseen
http://node1.com:8000/wordpress/my-post
.
Kun välityspalvelimen osoite sisältää URI: n (
/wordpress/
), välityspalvelimelle siirretty pyynnön URI korvataan direktiivissä määritellyllä URI: llä. Jos välityspalvelimen osoite määritetään ilman URI: tä, koko pyynnön URI välitetään välityspalvelimelle.
Pyyntöotsikoiden hyväksyminen
Kun Nginx välittää pyynnön, se määrittelee automaattisesti kaksi otsikkokenttää välityspalvelimen välityspyynnöissä,
Host
ja
Connection
, ja poistaa tyhjät otsikot.
Host
on asetettu muuttuja
$proxy_host
, ja
Connection
on asetettu sulkeutumaan.
Voit säätää tai asettaa välityspalvelimille otsakkeita
proxy_set_header
-direktiivillä, jota seuraa otsikon arvo. Löydät luettelon kaikista saatavilla olevista pyyntöotsikoista ja niiden sallituista arvoista täältä. Jos haluat estää otsikon siirtämisen välityspalvelimelle, aseta se tyhjälle merkkijonolle
""
.
Seuraavassa esimerkissä muutamme isäntäotsikkokentän arvoksi
$host
ja poistamme
Accept-Encoding
otsikkokentän asettamalla sen arvoksi tyhjä merkkijono.
location / { proxy_set_header Host $host; proxy_set_header Accept-Encoding ""; proxy_pass http://localhost:3000; }
Aina kun muutat asetustiedostoa, sinun on käynnistettävä Nginx-palvelu uudelleen, jotta muutokset tulevat voimaan.
Nginxin määrittäminen käänteisenä välityspalvelimena ei-HTTP-välityspalvelimelle
Voit määrittää Nginxin käänteisenä välityspalvelimena ei-HTTP-välityspalvelimelle käyttämällä seuraavia ohjeita:
-
fastcgi_pass
- käänteinen välityspalvelin FastCGI-palvelimelle.uwsgi_pass
- käänteinen välityspalvelin uwsgi-palvelimelle.scgi_pass
- käänteinen välityspalvelin SCGI-palvelimelle.memcached_pass
- käänteinen välityspalvelin Memcached-palvelimelle.
Yksi yleisimmistä esimerkeistä on käyttää Nginxiä käänteisenä välityspalvelimena PHP-FPM: lle:
server { #… other directives location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.2-fpm.sock; } }
Yleiset Nginx-käänteisen välityspalvelimen vaihtoehdot
Sisällön tarjoamisesta HTTPS: n kautta on tullut nykyään standardi. Tässä osiossa annetaan sinulle esimerkki HTTPS Nginx -palvelimen välityspalvelimen kokoonpanosta, mukaan lukien suositellut Nginx-välityspalvelimen parametrit ja otsikot.
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
- Määrittääproxy_http_version 1.1
HTTP-protokollan version, oletuksena sen asetukseksi 1, 0. Verkkosovelluksissa ja jatkuvissa yhteyksissä on käytettävä versiota 1.1.proxy_cache_bypass $http_upgrade
- Asettaa olosuhteet, joissa vastausta ei oteta välimuistista.Upgrade $http_upgrade
jaConnection "upgrade"
- Nämä otsikkokentät ovat pakollisia, jos sovelluksesi käyttää verkkojohtoja.Host $host
- Seuraavassa tärkeysjärjestyksessä oleva$host
-muuttuja sisältää: isäntänimi pyyntöriviltä tai isäntänimi isäntäpyynnön otsikkokentästä tai palvelimen nimi, joka vastaa pyyntöä.X-Real-IP $remote_addr
-X-Real-IP $remote_addr
todellisen vierailijan etä-IP-osoitteen välityspalvelimelle.X-Forwarded-For $proxy_add_x_forwarded_for
-X-Forwarded-For $proxy_add_x_forwarded_for
- luettelo, joka sisältää kaikkien palvelimien IP-osoitteet, joille asiakas on välityspalvelun kautta.X-Forwarded-Proto $scheme
- Kun sitä käytetään HTTPS-palvelinlohkossa, jokainen välityspalvelimen HTTP-vastaus kirjoitetaan uudelleen HTTPS: lle.X-Forwarded-Host $host
- määrittelee asiakkaan pyytämän alkuperäisen isännän.X-Forwarded-Port $server_port
- määrittää asiakkaan pyytämän alkuperäisen portin.
johtopäätös
Olet oppinut käyttämään Nginxiä käänteisenä välityspalvelimena. Olemme myös osoittaneet sinulle, kuinka välittää lisäparametreja palvelimelle ja muokata ja asettaa erilaisia otsikkokenttiä välityspalvelimissa.
nginxTuomareiden asettaminen Tekniikan syyt äänestää Obama, McCain
Barack Obama ja John McCain kannattajat keskustelivat teknologiapolitiikasta keskustelemalla aiheista, kuten universaaleista laajakaista, H-1B-viisumit ja ...
Sunin asettaminen Yahoo Searchille
Mitä tahansa muuta Yahoo voi muuttua tässä vaiheessa, sen päivät hakupalveluna ovat ohitse.
Sprintin asettaminen vapauttamaan HTC Touch Pro2: n ensi viikolla
Sprint kertoo, että HTC Touch Pro2 on asiakkaidensa saatavilla 8. syyskuuta.