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

Tip Na voljo so tudi navodila za namestitev NGINX-a v sistemu Ubuntu 20.04. Več o tem, kaj je [proxy strežnik](https://www.ionos.com/sl-si/digitalguide/streznik/znanje/kaj-je-proxy-streznik/), pa si lahko preberete tukaj.

### 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
- `sudo` privilegijev 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:

```bash
$ sudo apt update
$ sudo apt install nginx
```

Potrdite 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:

```bash
$ sudo ufw allow 'Nginx HTTP'
```

Nato preverite, ali je namestitev uspela:

```bash
$ systemctl status nginx
```

Če je bil NGINX pravilno nameščen, se bo prikazal izpis, ki bo izgledal takole:

```bash
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"
```

### Ustvarjanje 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:

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

Ko 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:

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

Shranite 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«:

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

Preverite, ali v nastavitvah obstajajo napake:

```bash
$ sudo nginx -t
```

Č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:

```bash
$ sudo systemctl restart nginx
```

S 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:

```bash
$ sudo apt update
$ sudo apt install gunicorn
```

Nato ustvarite preprosto funkcijo, ki jo boste poslali kot odgovor HTTP v brskalnik. Ponovno uporabite nano:

```bash
$ nano test.py
```

Odpri datoteko in vnesi naslednjo kodo:

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

Nato datoteko shranite in zaprite. Nato zaženite Gunicorn in odprite testni modul:

```bash
$ gunicorn --worker=2 test:app
```

Izpis naj bi bil približno takšen:

```bash
[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
```

To 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«.


This is a markdown version of: [https://www.ionos.com/sl-si/digitalguide/streznik/nastavitve/nginx-kot-povratni-proxy/](https://www.ionos.com/sl-si/digitalguide/streznik/nastavitve/nginx-kot-povratni-proxy/) for AI/LLM consumption.