# Kā uzstādīt NGINX apgriezto starpniekserveri Ubuntu 22.04

NGINX izmantošana kā apgriezta starpniekservera ir populāra iespēja. Lai to konfigurētu, vienkārši jāinstalē NGINX, jāizveido konfigurācijas fails un jāpielāgo servera iestatījumi. Ar Gunicorn var arī pārbaudīt, vai konfigurācija ir izdevusies.

## Kā konfigurēt NGINX kā apgriezto starpniekserveri

Apgrieztiem starpniekserveriem ir spēja uzlabot **drošību, elastīgumu un resursu pieejamību**. Tie atrodas starp klientu un serveri, un lietotājiem nav pamanāmi. NGINX apgrieztais starpniekserveris ir ļoti ieteicams risinājums ienākošo pieprasījumu apstrādei. Turpinājumā izskaidrosim, kā to instalēt un konfigurēt Ubuntu 22.04.

Tip Mums ir arī instrukcijas par NGINX instalēšanu Ubuntu 20.04. Un šeit varat uzzināt vairāk par to, kas ir [proxy serveris.](https://www.ionos.com/lv-lv/digitalguide/serveris/prasmes-un-zinasanas/kas-ir-starpniekserveris/)

### Kādas ir sistēmas prasības, lai izmantotu NGINX kā apgriezto starpniekserveri?

Lai Ubuntu 22.04 sistēmā konfigurētu NGINX apgriezto starpniekserveri, jums būs nepieciešams šāds:

- Pilnībā konfigurēts Ubuntu serveris
- Servera IP adrese vai Unix domēna sokets
- Jūsu servera domēns
- `sudo` privilēģijas serverim

### NGINX instalēšana kā apgrieztais starpniekserveris

Vispirms atjauniniet savu repozitoriju, izmantojot termināli, lai iegūtu **piekļuvi jaunākajām programmatūras pakām**. Pēc tam instalējiet NGINX, izmantojot `apt install` komandu. Šeit ir kods:

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

Apstipriniet ar \[Y\] un nospiediet \[Enter\], lai piemērotu iestatījumus.

Tālāk konfigurējiet ugunsmūri tā, lai NGINX varētu piekļūt jūsu serverim. Lai pievienotu izņēmumu, varat izmantot šādu komandu:

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

Pēc tam pārbaudiet, vai instalēšana ir veiksmīgi pabeigta:

```bash
$ systemctl status nginx
```

Ja NGINX ir instalēts pareizi, jūs redzēsiet izvadi, kas izskatās šādi:

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

### Konfigurācijas faila izveide un servera pielāgošana

Tagad varat konfigurēt servera bloku, lai sagatavotu NGINX apgriezto starpniekserveri savai sistēmai. Lai to izdarītu, izveidojiet un atveriet **jaunu konfigurācijas failu**, izmantojot teksta redaktoru Nano. Ievadiet šādu komandu un noteikti aizstājiet vietas turētāju „your\_domain“ ar savu domēna nosaukumu:

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

Kad fails ir atvērts, pievienojiet šādu saturu. Aizstājiet vietu turētājus „your\_domain“ un „server\_address“ ar sava servera domēnu un IP adresi vai Unix domēna soketi:

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

Saglabājiet un aizveriet failu. Redzamais saturs ir **NGINX standarta konfigurācija**. Tas izmanto 80. portu, lai atbildētu uz pieprasījumiem no jūsu domēna un servera. `proxy_pass` ir būtiska sastāvdaļa, lai NGINX varētu darboties kā apgrieztais starpniekserveris. Vajadzības gadījumā varat konfigurēt arī papildu serverus.

Tālāk izveidojiet saiti uz `sites-enabled` direktoriju, uz kuru NGINX piekļūst sākumā. Izmantojiet šādu komandu un neaizmirstiet aizstāt vietu turētāju „your\_domain“:

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

Pārbaudiet, vai konfigurācijā nav kļūdu:

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

Ja netiek parādīti nekādi kļūdu ziņojumi, tagad varat pārstartēt NGINX apgriezto starpniekserveri, lai piemērotu iestatījumus. Lai to izdarītu, ievadiet šādu komandu:

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

Tagad esat pabeidzis NGINX konfigurēšanu kā apgriezto starpniekserveri. Nākamajā sadaļā mēs izskaidrosim, kā pārbaudīt starpniekserveri. Šī pārbaude tomēr ir fakultatīva.

### NGINX apgriezto starpniekserveri pārbaudot ar Gunicorn

Ja vēlaties pārbaudīt savu NGINX apgriezto starpniekserveri, parasti to varat izdarīt, izmantojot savu serveri. Ja izmantojat savu serveri, atveriet to, izmantojot komandu rindu. Alternatīvi varat izmantot vieglo **HTTP tīmekļa serveri Gunicorn**, kas ļoti labi sadarbojas ar NGINX apgriezto starpniekserveri. Vispirms atjauniniet programmatūras pakotnes un instalējiet serveri:

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

Tad izveidojiet vienkāršu funkciju, ko nosūtīt kā HTTP atbildi uz jūsu pārlūku. Atkal izmantojiet nano:

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

Atveriet failu un ievadiet šādu kodu:

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

Tad saglabājiet un aizveriet failu. Pēc tam palaidiet Gunicorn un atveriet testa moduli:

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

Rezultāts būtu jāizskatās aptuveni šādi:

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

Tas apstiprina, ka Gunicorn sazinās ar adresi `http://127.0.0.1:8000`. Visbeidzot, **atveriet pārlūku** un dodieties uz domēnu, kuru konfigurējāt ar NGINX. NGINX apgrieztais starpniekserveris parādīs ziņojumu „This is a test”.


This is a markdown version of: [https://www.ionos.com/lv-lv/digitalguide/serveris/konfiguracija/nginx-apgrieztais-starpniekserveris/](https://www.ionos.com/lv-lv/digitalguide/serveris/konfiguracija/nginx-apgrieztais-starpniekserveris/) for AI/LLM consumption.