Nginx

Nginx vastupidine puhverserver

Nginx vastupidine puhverserver

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 nginx

Vaikekonfiguratsiooni 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 / vaikimisi

Kuid 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.konf

Mõ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

  1. ranvirslog.com (WEBSITE 1) IP 10-ga.135.123.183
  2. 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:

server
kuulata 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:

server
kuulata 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 -t

Vigade korral aitab ülaltoodud käsu väljund neid leida ja parandada. Nüüd taaskäivitage server:

$ service nginx taaskäivitage

Ja 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.

League of Legendsi installimine Ubuntu 14-le.04
Kui olete League of Legends fänn, siis on see teile võimalus proovida League of Legendsit. Pange tähele, et LOL-i toetab PlayOnLinux, kui olete Linuxi...
Installige uusim OpenRA strateegiamäng Ubuntu Linuxi
OpenRA on tasuta / tasuta reaalajas strateegiamängumootor, mis loob uuesti Westwoodi varased mängud nagu klassikaline Command & Conquer: Red Alert. Ja...
Installige Linuxile uusim Dolphin Emulator for Gamecube & Wii
Dolphini emulaator võimaldab teil mängida valitud Gamecube & Wii mänge Linuxi personaalarvutites (PC). Vabalt saadaval oleva ja avatud lähtekoodiga m...