NGINX nau­do­ji­mas kaip at­virkš­ti­nio proxy serverio yra po­pu­lia­rus spren­di­mas. Norint jį su­kon­fi­gū­ruo­ti, tereikia įdiegti NGINX, sukurti kon­fi­gū­ra­ci­jos failą ir pa­ko­re­guo­ti serverio nu­sta­ty­mus. Taip pat galite pa­tik­rin­ti, ar kon­fi­gū­ra­ci­ja pavyko, naudodami Gunicorn.

Kaip su­kon­fi­gū­ruo­ti NGINX kaip at­virkš­ti­nį tarpinį serverį

At­virkš­ti­niai proxy serveriai gali padėti padidinti saugumą, lankstumą ir išteklių pri­ei­na­mu­mą. Jie įdiegiami tarp kliento ir serverio, todėl var­to­to­jai jų nepastebi. NGINX at­virkš­ti­nis proxy serveris yra labai re­ko­men­duo­ja­mas spren­di­mas gau­na­miems už­klau­si­mams. Toliau pa­aiš­kin­si­me, kaip jį įdiegti ir su­kon­fi­gū­ruo­ti „Ubuntu 22.04“ sistemoje.

Kokie yra sistemos rei­ka­la­vi­mai, kad „NGINX“ veiktų kaip at­virkš­ti­nis proxy?

Norėdami įdiegti NGINX at­virkš­ti­nį proxy „Ubuntu 22.04“ sistemoje, jums reikės:

  • Pilnai su­kon­fi­gū­ruo­tas „Ubuntu“ serveris
  • Serverio IP adresas arba Unix domeno lizdas
  • Jūsų serverio domenas
  • sudo pri­vi­le­gi­jų serveriui

NGINX įdiegimas kaip at­virkš­ti­nio proxy serverio

Pir­miau­sia at­nau­jin­ki­te savo paketų saugyklą naudodami terminalą, kad ga­lė­tu­mė­te naudotis nau­jau­siais paketais. Tada įdiekite NGINX naudodami apt install komandą. Štai kodas:

$ sudo apt update
$ sudo apt install nginx
bash

Pa­tvir­tin­ki­te spausdami [Y] ir pa­spau­s­ki­te [Enter], kad nu­sta­ty­mas įsi­ga­lio­tų.

Toliau su­kon­fi­gū­ruo­ki­te ug­nia­sie­nę taip, kad „NGINX“ turėtų prieigą prie jūsų serverio. Išimtį galite pridėti naudodami šią komandą:

$ sudo ufw allow 'Nginx HTTP'
bash

Tada pa­tik­rin­ki­te, ar įdiegimas pavyko:

$ systemctl status nginx
bash

Jei „NGINX“ buvo įdiegtas teisingai, ekrane turėtų pa­si­ro­dy­ti toks tekstas:

nginx.service - A high performance web server and a reverse proxy server
      Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
      Active: active (running) since Mon 2024-06-24 06:52:46 UTC; 39min ago
         Docs: man:nginx(8)
    Main PID: 9919 (nginx)
        Tasks: 2 (limit: 2327)
      Memory: 2.9M
          CPU: 50ms
      CGroup: /system.slice/nginx.service
                 ├─9919 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
                 └─9920 "nginx: worker process"
bash

Kon­fi­gū­ra­ci­jos failo sukūrimas ir serverio pri­tai­ky­mas

Dabar galite su­kon­fi­gū­ruo­ti serverio bloką, kad pa­reng­tu­mė­te NGINX at­virkš­ti­nį proxy savo sistemai. Tam sukurkite ir ati­da­ry­ki­te naują kon­fi­gū­ra­ci­jos failą naudodami teksto re­dak­to­rių „Nano“. Įveskite šią komandą ir būtinai pa­kei­s­ki­te vietą „your_domain“ savo domeno pa­va­di­ni­mu:

$ sudo nano /etc/nginx/sites-available/your_domain
bash

Atidarius failą, įterpkite šį turinį. Pa­kei­s­ki­te vietos lai­kik­lius „your_domain“ ir „server_address“ savo serverio domenu ir IP adresu arba Unix domeno lizdu:

server {
    listen 80;
    listen [::]:80;
    server_name your_domain www.your_domain;
        
    location / {
        proxy_pass http://server_address;
        include /etc/nginx/proxy_params;
    }
}
txt

Iš­sau­go­ki­te ir už­da­ry­ki­te failą. Pateiktas turinys atitinka nu­ma­ty­tuo­sius NGINX nu­sta­ty­mus. Jis naudoja 80-ąjį prievadą, kad atsakytų į užklausas iš jūsų domeno ir serverio. proxy_pass yra esminė NGINX, vei­kian­čio kaip at­virkš­ti­nio proxy serverio, funkcijos dalis. Prireikus taip pat galite su­kon­fi­gū­ruo­ti pa­pil­do­mus serverius.

Toliau sukurkite nuorodą į katalogą sites-enabled, kurį NGINX pasiekia paleidimo metu. Naudokite šią komandą ir ne­pa­mirš­ki­te pakeisti vietos žymės „your_domain“:

$ sudo ln -s /etc/nginx/sites-available/your_domain/etc/nginx/sites-enabled/
bash

Pa­tik­rin­ki­te, ar kon­fi­gū­ra­ci­jo­je nėra klaidų:

$ sudo nginx -t
bash

Jei ne­at­si­ran­da jokių klaidų pranešimų, dabar galite iš naujo paleisti NGINX at­virkš­ti­nį proxy, kad nu­sta­ty­mai įsi­ga­lio­tų. Tam įveskite šią komandą:

$ sudo systemctl restart nginx
bash

Dabar baigėte kon­fi­gū­ruo­ti NGINX kaip at­virkš­ti­nį proxy. Kitoje dalyje pa­aiš­kin­si­me, kaip pa­tik­rin­ti proxy veikimą. Tačiau šis te­sta­vi­mas nėra pri­va­lo­mas.

NGINX at­virkš­ti­nio proxy serverio tik­ri­ni­mas naudojant Gunicorn

Jei nu­sprę­si­te išbandyti savo NGINX at­virkš­ti­nį proxy, paprastai tam galite naudoti savo serverį. Jei naudojate savo serverį, ati­da­ry­ki­te jį per komandinę eilutę. Taip pat galite naudoti lengvą HTTP ži­nia­tink­lio serverį „Gunicorn“, kuris puikiai veikia su NGINX at­virkš­ti­niu proxy. Pir­miau­sia at­nau­jin­ki­te paketus ir įdiekite serverį:

$ sudo apt update
$ sudo apt install gunicorn
bash

Tada sukurkite paprastą funkciją, kurią naršyklė gaus kaip HTTP atsakymą. Vėl naudokite „nano“:

$ nano test.py
bash

Ati­da­ry­ki­te failą ir įveskite šį kodą:

def app(environ, start_response):
	start_response("200 OK", [])
	return iter([b"This is a test"])
txt

Tada iš­sau­go­ki­te ir už­da­ry­ki­te failą. Po to pa­lei­s­ki­te „Gunicorn“ ir ati­da­ry­ki­te bandomąjį modulį:

$ gunicorn --worker=2 test:app
bash

Re­zul­ta­tas turėtų atrodyti maždaug taip:

[2024-06-24 07:09:29 +0000] [10568] [INFO] Starting gunicorn 20.1.0
[2024-06-24 09:14:37 +0000] [10568] [INFO] Listening at: http://127.0.0.1 (10568)
[2024-06-24 09:14:37 +0000] [10568] [INFO] Using worker: sync
[2024-06-24 09:14:37 +0000] [10569] [INFO] Booting worker with pid: 10569
[2024-06-24 09:14:37 +0000] [10570] [INFO] Booting worker with pid: 10570
bash

Tai pa­tvir­ti­na, kad „Gunicorn“ bendrauja su adresu http://127.0.0.1:8000. Ga­liau­siai ati­da­ry­ki­te naršyklę ir pereikite į domeną, kurį su­kon­fi­gū­ra­vo­te naudojant „NGINX“. „NGINX“ at­virkš­ti­nis proxy parodys pranešimą „Tai yra bandymas“.

Go to Main Menu