Kako nastaviti reverzni proxy NGINX v sistemu Ubuntu 22.04
Uporaba NGINX-a kot povratnega proxyja je priljubljena možnost. Za nastavitev morate le namestiti NGINX, ustvariti konfiguracijsko datoteko in prilagoditi nastavitve strežnika. Z Gunicornom lahko tudi preverite, ali je bila namestitev uspešna.
Kako nastaviti NGINX kot povratni proxy
Obratni proxyji lahko pripomorejo k večji varnosti, prilagodljivosti in razpoložljivosti virov. Nameščeni so med odjemalcem in strežnikom, uporabniki pa jih ne opazijo. Obratni proxy NGINX je zelo priporočljiva rešitev za obdelavo dohodnih zahtevkov. V nadaljevanju bomo pojasnili, kako ga namestiti in nastaviti v sistemu Ubuntu 22.04.
Kakšne so sistemske zahteve za NGINX kot povratni proxy?
Za nastavitev reverznega proxyja NGINX v sistemu Ubuntu 22.04 boste potrebovali naslednje:
- Popolnoma nastavljen strežnik Ubuntu
- IP naslov strežnika ali Unix domenski vtičnik
- Domena vašega strežnika
sudoprivilegijev za strežnik
Namestitev NGINX-a kot povratnega proxyja
Najprej posodobite repozitorij prek terminala, da boste imeli dostop do najnovejših paketov. Nato namestite NGINX s pomočjo ukaza apt install. Tukaj je koda:
$ sudo apt update
$ sudo apt install nginxbashPotrdite z [Y] in pritisnite [Enter], da se nastavitve shranijo.
Nato nastavite požarni zid tako, da bo imel NGINX dostop do vašega strežnika. Izjemo lahko dodate z naslednjim ukazom:
$ sudo ufw allow 'Nginx HTTP'bashNato preverite, ali je namestitev uspela:
$ systemctl status nginxbashČe je bil NGINX pravilno nameščen, se bo prikazal izpis, ki bo izgledal takole:
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"bashUstvarjanje konfiguracijske datoteke in prilagajanje strežnika
Sedaj lahko nastavite strežniški blok, da pripravite reverzni proxy NGINX za vaš sistem. Za to ustvarite in odprite novo konfiguracijsko datoteko z besedilnim urejevalnikom Nano. Vnesite naslednji ukaz in ne pozabite zamenjati nadomestnega znaka »your_domain« z imenom vaše domene:
$ sudo nano /etc/nginx/sites-available/your_domainbashKo je datoteka odprta, vnesite naslednjo vsebino. Nadomestite nadomestna imena »your_domain« in »server_address« z domeno ter IP-naslovom ali Unixovim domenskim vtičnikom vašega strežnika:
server {
listen 80;
listen [::]:80;
server_name your_domain www.your_domain;
location / {
proxy_pass http://server_address;
include /etc/nginx/proxy_params;
}
}txtShranite in zaprite datoteko. Prikazana vsebina predstavlja privzeto nastavitev za NGINX. Uporablja vrata 80 za odgovarjanje na zahteve iz vaše domene in strežnika. proxy_pass so ključni del delovanja NGINX-a kot povratnega proxyja. Po potrebi lahko nastavite tudi dodatne strežnike.
Nato ustvarite povezavo do imenika sites-enabled, do katerega NGINX dostopa na začetku. Uporabite naslednji ukaz in ne pozabite zamenjati nadomestnega znaka »your_domain«:
$ sudo ln -s /etc/nginx/sites-available/your_domain/etc/nginx/sites-enabled/bashPreverite, ali v nastavitvah obstajajo napake:
$ sudo nginx -tbashČe se ne prikaže nobeno sporočilo o napaki, lahko zdaj ponovno zaženete reverzni proxy NGINX, da se nastavitve uporabijo. Za to vnesite naslednji ukaz:
$ sudo systemctl restart nginxbashS tem ste končali z nastavitvijo strežnika NGINX kot povratnega proxyja. V naslednjem poglavju bomo pojasnili, kako preveriti delovanje proxyja. To preizkušanje pa je neobvezno.
Preverjanje obratnega proxyja NGINX z Gunicornom
Če se odločite, da boste preizkusili svoj NGINX reverzni proxy, lahko za to običajno uporabite svoj strežnik. Če uporabljate svoj strežnik, ga odprite prek ukazne vrstice. Alternativno lahko uporabite enostaven HTTP-spletni strežnik Gunicorn, ki zelo dobro deluje z NGINX reverznim proxyjem. Najprej posodobite pakete in namestite strežnik:
$ sudo apt update
$ sudo apt install gunicornbashNato ustvarite preprosto funkcijo, ki jo boste poslali kot odgovor HTTP v brskalnik. Ponovno uporabite nano:
$ nano test.pybashOdpri datoteko in vnesi naslednjo kodo:
def app(environ, start_response):
start_response("200 OK", [])
return iter([b"This is a test"])txtNato datoteko shranite in zaprite. Nato zaženite Gunicorn in odprite testni modul:
$ gunicorn --worker=2 test:appbashIzpis naj bi bil približno takšen:
[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: 10570bashTo je potrditev, da Gunicorn komunicira z naslovom http://127.0.0.1:8000. Nazadnje odprite brskalnik in obiščite domeno, ki ste jo nastavili v NGINX-u. NGINX-ov povratni proxy bo prikazal sporočilo »To je test«.