NGINX:n käyttö kään­teis­vä­li­tys­pal­ve­li­me­na on suosittu vaih­toeh­to. Asen­nuk­sen suo­rit­ta­mi­sek­si riittää, että asennat NGINX:n, luot kon­fi­gu­raa­tio­tie­dos­ton ja muokkaat pal­ve­li­men asetuksia. Voit myös testata, onko asennus on­nis­tu­nut, Gu­nicor­nin avulla.

Kuinka asettaa NGINX kään­teis­vä­li­tys­pal­ve­li­mek­si

Kään­teis­vä­li­tys­pal­ve­li­met voivat parantaa tie­to­tur­vaa, jous­ta­vuut­ta ja re­surs­sien saa­ta­vuut­ta. Ne si­joi­te­taan asiakkaan ja pal­ve­li­men väliin, eikä käyttäjä huomaa niiden ole­mas­sao­loa. NGINX-kään­teis­vä­li­tys­pal­ve­lin on erittäin suo­si­tel­ta­va ratkaisu saapuviin pyyn­töi­hin. Seu­raa­vas­sa selitämme, miten se asen­ne­taan ja mää­ri­te­tään Ubuntu 22.04:ssä.

Mitkä ovat NGINX:n jär­jes­tel­mä­vaa­ti­muk­set kään­teis­vä­li­tys­pal­ve­li­me­na käy­tet­täes­sä?

NGINX-kään­tei­sen vä­li­tys­pal­ve­li­men asen­ta­mi­nen Ubuntu 22.04:ään edel­lyt­tää seuraavia asioita:

  • Täysin kon­fi­gu­roi­tu Ubuntu-palvelin
  • Pal­ve­li­men IP-osoite tai Unix-verk­ko­so­ket­ti
  • Pal­ve­li­me­si verk­ko­tun­nus
  • sudo pal­ve­li­men käyt­tö­oi­keut­ta

NGINX:n asen­ta­mi­nen kään­teis­vä­li­tys­pal­ve­li­mek­si

Päivitä ensin pa­ket­ti­va­ras­to­si ko­men­to­ri­vil­tä, jotta saat käyttöösi uusimmat paketit. Asenna sitten NGINX ko­men­nol­la apt install. Tässä on koodi:

$ sudo apt update
$ sudo apt install nginx
bash

Vahvista va­lin­nal­la [Y] ja paina [Enter] vah­vis­taak­se­si asetukset.

Määritä seu­raa­vak­si palomuuri niin, että NGINX pääsee pal­ve­li­mel­le­si. Voit lisätä poik­keuk­sen seu­raa­val­la ko­men­nol­la:

$ sudo ufw allow 'Nginx HTTP'
bash

Tarkista sitten, että asennus onnistui:

$ systemctl status nginx
bash

Jos NGINX on asennettu oikein, saat seu­raa­van­lai­sen tulosteen:

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

Mää­ri­tys­tie­dos­ton luominen ja pal­ve­li­men mu­kaut­ta­mi­nen

Nyt voit määrittää pal­ve­lin­loh­kon, jotta NGINX-kään­teis­vä­li­tys­pal­ve­lin on valmis käy­tet­tä­väk­si jär­jes­tel­mäs­sä­si. Luo ja avaa tätä varten uusi mää­ri­tys­tie­dos­to Nano-teks­tie­di­to­ril­la. Kirjoita seuraava komento ja muista korvata paik­ka­merk­ki ”your_domain” omalla verk­ko­tun­nuk­sel­la­si:

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

Kun tiedosto on auki, lisää siihen seuraava sisältö. Korvaa paik­ka­mer­kit ”your_domain” ja ”server_address” pal­ve­li­me­si verk­ko­tun­nuk­sel­la ja IP-osoit­teel­la tai Unix-verk­ko­soc­ke­til­la:

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

Tallenna ja sulje tiedosto. Näkyvissä oleva sisältö on NGINX:n ole­tus­a­se­tuk­set. Se käyttää porttia 80 vas­ta­tak­seen verk­ko­tun­nuk­se­si ja pal­ve­li­me­si pyyn­töi­hin. proxy_pass on olen­nai­nen osa NGINX:n toimintaa kään­teis­vä­li­tys­pal­ve­li­me­na. Tar­vit­taes­sa voit määrittää myös muita pal­ve­li­mia.

Luo seu­raa­vak­si linkki ha­ke­mis­toon sites-enabled, johon NGINX pääsee alussa. Käytä seuraavaa komentoa ja muista korvata paik­ka­merk­ki ”your_domain”:

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

Tarkista, onko ase­tuk­sis­sa­si virheitä:

$ sudo nginx -t
bash

Jos et näe vir­heil­moi­tuk­sia, voit nyt käyn­nis­tää NGINX-kään­tei­sen vä­li­tys­pal­ve­li­men uudelleen, jotta asetukset tulevat voimaan. Tee se kir­joit­ta­mal­la seuraava komento:

$ sudo systemctl restart nginx
bash

NGINX:n mää­rit­tä­mi­nen kään­teis­vä­li­tys­pal­ve­li­mek­si on nyt valmis. Seu­raa­vas­sa osassa kerromme, miten vä­li­tys­pal­ve­lin testataan. Testaus on kuitenkin va­paa­eh­tois­ta.

NGINX-kään­tei­sen vä­li­tys­pal­ve­li­men tar­kis­ta­mi­nen Gu­nicor­nin avulla

Jos haluat testata NGINX-kään­teis­vä­li­tys­pal­ve­lin­ta, voit yleensä käyttää siihen omaa pal­ve­lin­ta­si. Jos käytät omaa pal­ve­lin­ta­si, avaa se ko­men­to­tul­kil­la. Vaih­toeh­toi­ses­ti voit käyttää kevyttä Gunicorn-HTTP-verk­ko­pal­ve­lin­ta, joka toimii erin­omai­ses­ti NGINX-kään­teis­vä­li­tys­pal­ve­li­men kanssa. Päivitä ensin paketit ja asenna palvelin:

$ sudo apt update
$ sudo apt install gunicorn
bash

Luo sitten yk­sin­ker­tai­nen funktio, joka lä­he­te­tään HTTP-vas­tauk­se­na se­lai­mee­si. Käytä jälleen nano-komentoa:

$ nano test.py
bash

Avaa tiedosto ja kirjoita seuraava koodi:

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

Tallenna ja sulje tiedosto. Käynnistä sen jälkeen Gunicorn ja avaa tes­ti­mo­duu­li:

$ gunicorn --worker=2 test:app
bash

Tuloksen pitäisi näyttää suun­nil­leen tältä:

[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

Tämä vahvistaa, että Gunicorn on yh­tey­des­sä osoit­tee­seen http://127.0.0.1:8000. Avaa lopuksi selaimesi ja siirry NGINX:llä mää­rit­tä­mää­si verk­ko­tun­nuk­seen. NGINX:n kään­teis­vä­li­tys­pal­ve­lin näyttää viestin ”This is a test”.

Siirry pää­va­lik­koon