Mis on vastupidine puhverserver?
Puhverserver on see, mis räägib teie nimel Internetiga. Näiteks kui teie kolledži võrk on blokeerinud https: // www.facebook.com / kuid domeen https: // exampleproxy.com on endiselt juurdepääsetav, siis saate viimast külastada ja see edastab kõik teie taotlused Facebooki serverite jaoks Facebookile ja saadab Facebooki vastuste kaudu oma brauserisse.
Kokkuvõtteks saadab puhverserver ühe teise kliendi nimel päringud mis tahes Interneti-serverisse. Vastupidine volikiri käitub sarnaselt.
A vastupidine puhverserver saab ühe või enama nimel igalt kliendilt päringu serverid. Nii et kui teil on paar serverit, mis hostivad ww1.näide.com ja WW2.näide.com vastupidine puhverserver võib kahe serveri nimel taotlusi vastu võtta, edastada need päringud vastavatele lõpp-punktidele, kus vastus genereeritakse, ja saata tagasi pöördproksile, et need klientidele tagasi saata.
Seadistatud
Enne kui hakkame Nginxi konfiguratsioonifaile näpistama ja teeme pöördproksi serveri. Ma tahan kivisse raiuda, kuidas mu seadistus välja näeb, nii et kui proovite oma kujundust ellu viia, oleks see vähem segane.
Kolme VPS-i kerimiseks kasutasin DigitalOceani platvormi. Nad kõik on samas võrgus, millel on igaühel oma privaatne IP ja ainult ühel VPS-il on staatiline avalik IP (see on meie vastupidine puhverserver.)
VM / hostinimi | Privaatne IP | Avalik IP | Roll |
Tagurpidi | 10.135.123.187 | 159.89.108.14 | Tagurpidi puhverserver, töötab Nginx |
Sõlm-1 | 10.135.123.183 | Puudub | Esimese veebisaidi käitamine |
Sõlm-2 | 10.135.123.186 | Puudub | Teise veebisaidi käitamine |
Kahel töötaval veebisaidil on domeeninimed w1.ranvirslog.com ja WW2.ranvirslog.com ja mõlemad nende A-kirjed viitavad pöördproksise avalikule IP-le, s.t.e, 159.89.108.14
Privaatse IP-i idee on see, et kolm VM-i saavad selle privaatse IP-i kaudu omavahel suhelda, kuid kaugkasutaja pääseb juurde ainult pöördproksi VM-ile avalikul IP-l. Seda on oluline meeles pidada. Näiteks ei saa te privaatset IP-d kasutades ühegi VM-i sisse logida.
Lisaks on nii sõlmel 1 kui ka sõlmel 2 Apache veebiserver, mis teenindab kahte erinevat veebileht. See aitab meil üksteist eristada.
Esimesel veebisaidil on kiri „WEBSITE 1 WORKS!!!”
Samamoodi näitab seda ka teine veebisait:
Teie veebisaidid võivad erineda, kuid kui soovite seda seadistust lähtepunktina kopeerida, käivitage apt install apache2 Node-1 ja Node-2. Seejärel muutke faili / var / www / html / index.HTML, nii et veebiserver ütleb kõik, mida soovite öelda.
Pöördproksiline VM on endiselt puutumata. Kõik VM-id töötavad Ubuntu 18-ga.04 LTS, kuid võite vabalt kasutada mis tahes muud soovitud operatsioonisüsteemi. Dockeri konteinerite abil saate seda isegi jäljendada. Luues kasutaja määratud Dockeri sildvõrgu ja kudemismahutid, saate määrata igale konteinerile privaatse IP ja edastada kogu HTTP / HTTPS puhverserveri ühte konteinerisse, mis oleks meie Nginxi pöördproksi konteiner.
Siiamaani on kõik korras.
Nginxi vaikekonfiguratsioon
Alustame Nginxi installimisega pöördprotsessi serverisse, ma kasutan Ubuntu, nii et minu paketihaldur on apt:
$ sudo apt install nginxVaikekonfiguratsiooni eemaldamine, kui kasutate Debiani-põhist levitamist
Enne kui läheme edasi, väike märkus Nginxi konfiguratsiooni kohta. Kõik erinevad konfiguratsioonifailid, sealhulgas nginx, on salvestatud kataloogi / etc / nginx.conf-fail, mis on peamine konfiguratsioonifail. Kui vaatame selle faili sisu (http-plokis), märkate kahte järgmist rida:
…sisaldab / etc / nginx / conf.d / *.konf;
kaasata / etc / nginx / saidid lubatud / *;
…
Teine rida sisaldab kõiki Nginxi konfiguratsioonini saidil lubatud kataloogi faile. See on enamiku Debiani-põhiste jaotuste tavapraktika. Näiteks vaikelehel „Welcome to Nginx“ on vastav fail nimega vaikimisi asukohas / etc / nginx / sites-available / default koos sümboli linkiga / etc / nginx / sites-enabled /, kuid me ei vaja seda vaikeveeb, et saaksime sümboli turvaliselt eemaldada. Originaal on endiselt saadaval saidil saadaolevas kataloogis.
$ rm / etc / nginx / saidid lubatud / vaikimisiKuid kui loome vastupidise puhverserveri konfiguratsiooni, siis teeme seda konf.d kataloog (kus meie failinimel on a .konf laiendus) see on universaalne, ja töötab kõikides distributsioonides, mitte ainult Debianis või Ubuntu.
Muude distrode vaikekonfiguratsiooni eemaldamine
Kui te ei kasuta Debiani-põhist levitamist, leiate vaikimisi Tervitusleht seadistamine aadressil / etc / nginx / conf.d / vaikimisi.conf, kui soovite seda tulevikus kasutada, viige fail lihtsalt mõnda seifi (kuna see pole sümbollink)
$ mv / etc / nginx / conf.d / vaikimisi.conf ~ / vaikimisi.konfMõnikord võib seda leida kataloogist / etc / nginx / default.d, kuna inimesed lihtsalt ei suuda ühtses lihtsas standardis kokku leppida! Nii et peate selle välja selgitamiseks natuke kaevama kataloogis / etc / nginx.
Tagurpidi puhverserveri plokkide lisamine
Nagu varem öeldud, on kaks seda domeeni nime, mida ma selle puhverserveri taga majutan
- ranvirslog.com (WEBSITE 1) IP 10-ga.135.123.183
- ranvirslog.com (WEBSITE 2) IP 10-ga.135.123.186
Nii et loome ühe faili iga veebisaidi kohta kataloogis / etc / nginx / conf.d / kaust. Seega oleme hästi korraldatud.
$ touch / etc / nginx / conf.pp / w1.konf$ touch / etc / nginx / conf.d / ww2.konf
Failidele saate anda nime mis iganes soovite, kui sellel on .conf oma nime lõpus.
Esimeses failis ww1.conf lisage järgmised read:
serverkuulata 80;
kuulama [::]: 80;
serveri_nimi WW1.ranvirslog.com;
asukoht /
puhverserveri_pääs http: // 10.135.123.183 /;
puhverserveri_puhver välja;
proxy_set_header X-Real-IP $ remote_addr;
Kuulamisavaldused käskivad Nginxil kuulata pordis 80 nii IPv4 kui ka IPv6 juhtumeid. Seejärel kontrollib see, kas serveri_nimi on ww1.ranvirslog.com ja siis blokeerib asukohablokk päringu aadressile http: // 10.135.123.183 / puhverdamine on välja lülitatud. Lisaks tagab rida proxy_set_header…, et kliendi algne IP edastatakse puhverserverisse. See on kasulik juhul, kui soovite arvutada kordumatute külastajate arvu jne. Vastasel juhul oleks puhverserveril ainult üks külastaja - Nginxi server.
Puhverdusvõimalused ja set_header on täiesti valikulised ning need lisatakse lihtsalt selleks, et puhverserver oleks võimalikult läbipaistev. WW2 jaoks.ranvirslog.com veebisaidile lisasin järgmise konfiguratsiooni aadressil / etc / nginx / conf.d / ww2.konf:
serverkuulata 80;
kuulama [::]: 80;
serveri_nimi WW2.ranvirslog.com;
asukoht /
puhverserveri_pääs http: // 10.135.123.186 /;
puhverserveri_puhver välja;
proxy_set_header X-Real-IP $ remote_addr;
Salvestage mõlemad failid ja testige, kas üldine konfiguratsioon on kehtiv või mitte:
$ sudo nginx -tVigade korral aitab ülaltoodud käsu väljund neid leida ja parandada. Nüüd taaskäivitage server:
$ service nginx taaskäivitageJa saate testida, kas see toimis või mitte, külastades oma brauseris erinevaid domeeninimesid ja tulemust.
Järeldus
Iga inimese kasutusjuht on erinev. Eespool mainitud konfiguratsioon võib teie stsenaariumi jaoks vajada veidi kohandamist. Võib-olla käitate mitu serverit ühes hostis, kuid erinevates pordides, sellisel juhul on rea proxy_pass… väärtuseks http: // localhost: portNumber /.
Need üksikasjad sõltuvad suuresti teie kasutusjuhtumist. Lisateavet muude valikute ja häälestuste kohta leiate ametlikest Nginxi dokumentidest.