NGINX iz­man­to­ša­na kā apgriezta star­pniek­ser­ve­ra ir populāra iespēja. Lai to kon­fi­gu­rē­tu, vienkārši jāinstalē NGINX, jāizveido kon­fi­gu­rā­ci­jas fails un jāpielāgo servera ie­sta­tī­ju­mi. Ar Gunicorn var arī pārbaudīt, vai kon­fi­gu­rā­ci­ja ir iz­de­vu­sies.

Kā kon­fi­gu­rēt NGINX kā apgriezto star­pniek­ser­ve­ri

Ap­griez­tiem star­pniek­ser­ve­riem ir spēja uzlabot drošību, elas­tī­gu­mu un resursu pie­eja­mī­bu. Tie atrodas starp klientu un serveri, un lie­to­tā­jiem nav pamanāmi. NGINX ap­griez­tais star­pniek­ser­ve­ris ir ļoti ieteicams ri­si­nā­jums ienākošo pie­pra­sī­ju­mu apstrādei. Tur­pi­nā­ju­mā iz­skaid­ro­sim, kā to instalēt un kon­fi­gu­rēt Ubuntu 22.04.

Kādas ir sistēmas prasības, lai izmantotu NGINX kā apgriezto star­pniek­ser­ve­ri?

Lai Ubuntu 22.04 sistēmā kon­fi­gu­rē­tu NGINX apgriezto star­pniek­ser­ve­ri, jums būs ne­pie­cie­šams šāds:

  • Pilnībā kon­fi­gu­rēts Ubuntu serveris
  • Servera IP adrese vai Unix domēna sokets
  • Jūsu servera domēns
  • sudo pri­vi­lē­ģi­jas serverim

NGINX in­sta­lē­ša­na kā ap­griez­tais star­pniek­ser­ve­ris

Vispirms at­jau­ni­niet savu re­po­zi­to­ri­ju, iz­man­to­jot termināli, lai iegūtu piekļuvi jau­nā­ka­jām prog­ram­ma­tū­ras pakām. Pēc tam in­sta­lē­jiet NGINX, iz­man­to­jot apt install komandu. Šeit ir kods:

$ sudo apt update
$ sudo apt install nginx
bash

Ap­stip­ri­niet ar [Y] un no­spie­diet [Enter], lai piemērotu ie­sta­tī­ju­mus.

Tālāk kon­fi­gu­rē­jiet ugunsmūri tā, lai NGINX varētu piekļūt jūsu serverim. Lai pie­vie­no­tu izņēmumu, varat izmantot šādu komandu:

$ sudo ufw allow 'Nginx HTTP'
bash

Pēc tam pār­bau­diet, vai in­sta­lē­ša­na ir veiksmīgi pabeigta:

$ systemctl status nginx
bash

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

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­gu­rā­ci­jas faila izveide un servera pie­lā­go­ša­na

Tagad varat kon­fi­gu­rēt servera bloku, lai sa­ga­ta­vo­tu NGINX apgriezto star­pniek­ser­ve­ri savai sistēmai. Lai to izdarītu, iz­vei­do­jiet un atveriet jaunu kon­fi­gu­rā­ci­jas failu, iz­man­to­jot teksta redaktoru Nano. Ievadiet šādu komandu un noteikti aiz­stā­jiet vietas turētāju „your_domain“ ar savu domēna nosaukumu:

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

Kad fails ir atvērts, pie­vie­no­jiet šādu saturu. Aiz­stā­jiet vietu turētājus „your_domain“ un „server_address“ ar sava servera domēnu un IP adresi vai Unix domēna soketi:

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

Sa­gla­bā­jiet un aizveriet failu. Redzamais saturs ir NGINX standarta kon­fi­gu­rā­ci­ja. Tas izmanto 80. portu, lai atbildētu uz pie­pra­sī­ju­miem no jūsu domēna un servera. proxy_pass ir būtiska sa­stāv­da­ļa, lai NGINX varētu darboties kā ap­griez­tais star­pniek­ser­ve­ris. Va­ja­dzī­bas gadījumā varat kon­fi­gu­rēt arī papildu serverus.

Tālāk iz­vei­do­jiet saiti uz sites-enabled di­rek­to­ri­ju, uz kuru NGINX piekļūst sākumā. Iz­man­to­jiet šādu komandu un ne­aiz­mir­stiet aizstāt vietu turētāju „your_domain“:

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

Pār­bau­diet, vai kon­fi­gu­rā­ci­jā nav kļūdu:

$ sudo nginx -t
bash

Ja netiek parādīti nekādi kļūdu ziņojumi, tagad varat pār­star­tēt NGINX apgriezto star­pniek­ser­ve­ri, lai piemērotu ie­sta­tī­ju­mus. Lai to izdarītu, ievadiet šādu komandu:

$ sudo systemctl restart nginx
bash

Tagad esat pabeidzis NGINX kon­fi­gu­rē­ša­nu kā apgriezto star­pniek­ser­ve­ri. Nākamajā sadaļā mēs iz­skaid­ro­sim, kā pārbaudīt star­pniek­ser­ve­ri. Šī pārbaude tomēr ir fa­kul­ta­tī­va.

NGINX apgriezto star­pniek­ser­ve­ri pārbaudot ar Gunicorn

Ja vēlaties pārbaudīt savu NGINX apgriezto star­pniek­ser­ve­ri, parasti to varat izdarīt, iz­man­to­jot savu serveri. Ja iz­man­to­jat savu serveri, atveriet to, iz­man­to­jot komandu rindu. Al­ter­na­tī­vi varat izmantot vieglo HTTP tīmekļa serveri Gunicorn, kas ļoti labi sa­dar­bo­jas ar NGINX apgriezto star­pniek­ser­ve­ri. Vispirms at­jau­ni­niet prog­ram­ma­tū­ras pakotnes un in­sta­lē­jiet serveri:

$ sudo apt update
$ sudo apt install gunicorn
bash

Tad iz­vei­do­jiet vienkāršu funkciju, ko nosūtīt kā HTTP atbildi uz jūsu pārlūku. Atkal iz­man­to­jiet nano:

$ nano test.py
bash

Atveriet failu un ievadiet šādu kodu:

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

Tad sa­gla­bā­jiet un aizveriet failu. Pēc tam palaidiet Gunicorn un atveriet testa moduli:

$ gunicorn --worker=2 test:app
bash

Rezultāts būtu jā­iz­ska­tās aptuveni šādi:

[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

Tas ap­stip­ri­na, ka Gunicorn sazinās ar adresi http://127.0.0.1:8000. Vis­bei­dzot, atveriet pārlūku un dodieties uz domēnu, kuru kon­fi­gu­rē­jāt ar NGINX. NGINX ap­griez­tais star­pniek­ser­ve­ris parādīs ziņojumu „This is a test”.

Go to Main Menu