Kaip įdiegti NGINX atvirkštinį proxy „Ubuntu 22.04“
NGINX naudojimas kaip atvirkštinio proxy serverio yra populiarus sprendimas. Norint jį sukonfigūruoti, tereikia įdiegti NGINX, sukurti konfigūracijos failą ir pakoreguoti serverio nustatymus. Taip pat galite patikrinti, ar konfigūracija pavyko, naudodami Gunicorn.
Kaip sukonfigūruoti NGINX kaip atvirkštinį tarpinį serverį
Atvirkštiniai proxy serveriai gali padėti padidinti saugumą, lankstumą ir išteklių prieinamumą. Jie įdiegiami tarp kliento ir serverio, todėl vartotojai jų nepastebi. NGINX atvirkštinis proxy serveris yra labai rekomenduojamas sprendimas gaunamiems užklausimams. Toliau paaiškinsime, kaip jį įdiegti ir sukonfigūruoti „Ubuntu 22.04“ sistemoje.
Kokie yra sistemos reikalavimai, kad „NGINX“ veiktų kaip atvirkštinis proxy?
Norėdami įdiegti NGINX atvirkštinį proxy „Ubuntu 22.04“ sistemoje, jums reikės:
- Pilnai sukonfigūruotas „Ubuntu“ serveris
- Serverio IP adresas arba Unix domeno lizdas
- Jūsų serverio domenas
sudoprivilegijų serveriui
NGINX įdiegimas kaip atvirkštinio proxy serverio
Pirmiausia atnaujinkite savo paketų saugyklą naudodami terminalą, kad galėtumėte naudotis naujausiais paketais. Tada įdiekite NGINX naudodami apt install komandą. Štai kodas:
$ sudo apt update
$ sudo apt install nginxbashPatvirtinkite spausdami [Y] ir paspauskite [Enter], kad nustatymas įsigaliotų.
Toliau sukonfigūruokite ugniasienę taip, kad „NGINX“ turėtų prieigą prie jūsų serverio. Išimtį galite pridėti naudodami šią komandą:
$ sudo ufw allow 'Nginx HTTP'bashTada patikrinkite, ar įdiegimas pavyko:
$ systemctl status nginxbashJei „NGINX“ buvo įdiegtas teisingai, ekrane turėtų pasirodyti 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"bashKonfigūracijos failo sukūrimas ir serverio pritaikymas
Dabar galite sukonfigūruoti serverio bloką, kad parengtumėte NGINX atvirkštinį proxy savo sistemai. Tam sukurkite ir atidarykite naują konfigūracijos failą naudodami teksto redaktorių „Nano“. Įveskite šią komandą ir būtinai pakeiskite vietą „your_domain“ savo domeno pavadinimu:
$ sudo nano /etc/nginx/sites-available/your_domainbashAtidarius failą, įterpkite šį turinį. Pakeiskite vietos laikiklius „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;
}
}txtIšsaugokite ir uždarykite failą. Pateiktas turinys atitinka numatytuosius NGINX nustatymus. Jis naudoja 80-ąjį prievadą, kad atsakytų į užklausas iš jūsų domeno ir serverio. proxy_pass yra esminė NGINX, veikiančio kaip atvirkštinio proxy serverio, funkcijos dalis. Prireikus taip pat galite sukonfigūruoti papildomus serverius.
Toliau sukurkite nuorodą į katalogą sites-enabled, kurį NGINX pasiekia paleidimo metu. Naudokite šią komandą ir nepamirškite pakeisti vietos žymės „your_domain“:
$ sudo ln -s /etc/nginx/sites-available/your_domain/etc/nginx/sites-enabled/bashPatikrinkite, ar konfigūracijoje nėra klaidų:
$ sudo nginx -tbashJei neatsiranda jokių klaidų pranešimų, dabar galite iš naujo paleisti NGINX atvirkštinį proxy, kad nustatymai įsigaliotų. Tam įveskite šią komandą:
$ sudo systemctl restart nginxbashDabar baigėte konfigūruoti NGINX kaip atvirkštinį proxy. Kitoje dalyje paaiškinsime, kaip patikrinti proxy veikimą. Tačiau šis testavimas nėra privalomas.
NGINX atvirkštinio proxy serverio tikrinimas naudojant Gunicorn
Jei nuspręsite išbandyti savo NGINX atvirkštinį proxy, paprastai tam galite naudoti savo serverį. Jei naudojate savo serverį, atidarykite jį per komandinę eilutę. Taip pat galite naudoti lengvą HTTP žiniatinklio serverį „Gunicorn“, kuris puikiai veikia su NGINX atvirkštiniu proxy. Pirmiausia atnaujinkite paketus ir įdiekite serverį:
$ sudo apt update
$ sudo apt install gunicornbashTada sukurkite paprastą funkciją, kurią naršyklė gaus kaip HTTP atsakymą. Vėl naudokite „nano“:
$ nano test.pybashAtidarykite failą ir įveskite šį kodą:
def app(environ, start_response):
start_response("200 OK", [])
return iter([b"This is a test"])txtTada išsaugokite ir uždarykite failą. Po to paleiskite „Gunicorn“ ir atidarykite bandomąjį modulį:
$ gunicorn --worker=2 test:appbashRezultatas 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: 10570bashTai patvirtina, kad „Gunicorn“ bendrauja su adresu http://127.0.0.1:8000. Galiausiai atidarykite naršyklę ir pereikite į domeną, kurį sukonfigūravote naudojant „NGINX“. „NGINX“ atvirkštinis proxy parodys pranešimą „Tai yra bandymas“.