Att använda NGINX som omvänd proxy är ett populärt al­ter­na­tiv. För att kon­fi­gu­re­ra det behöver du bara in­stal­le­ra NGINX, skapa en kon­fi­gu­ra­tions­fil och justera dina ser­verin­ställ­ning­ar. Du kan också testa om kon­fi­gu­ra­tio­nen lyckades med Gunicorn.

Hur man kon­fi­gu­re­rar NGINX som en omvänd proxy

Omvända prox­y­serv­rar kan bidra till ökad säkerhet, flex­i­bi­li­tet och re­surs­till­gäng­lig­het. De placeras mellan klienten och servern och är inte synliga för an­vän­dar­na. NGINX omvänd proxy är en starkt re­kom­men­de­rad lösning för in­kom­man­de för­fråg­ning­ar. Nedan förklarar vi hur du in­stal­le­rar och kon­fi­gu­re­rar den på Ubuntu 22.04.

Vilka är system­kra­ven för NGINX som omvänd proxy?

För att kon­fi­gu­re­ra en NGINX-omvänd proxy på Ubuntu 22.04 behöver du följande:

  • En fullt kon­fi­gu­re­rad Ubuntu-server
  • Serverns IP-adress eller Unix-do­män­soc­kel
  • Din servers domän
  • sudo pri­vi­le­gi­er för servern

In­stal­le­ra NGINX som omvänd proxy

Uppdatera först ditt arkiv med hjälp av ter­mi­na­len för att få tillgång till de senaste paketen. In­stal­le­ra sedan NGINX med kommandot apt install. Här är koden:

$ sudo apt update
$ sudo apt install nginx
bash

Bekräfta med [Y] och tryck på [Enter] för att tillämpa in­ställ­ning­ar­na.

Kon­fi­gu­re­ra sedan din brandvägg så att NGINX har åtkomst till din server. Du kan använda följande kommando för att lägga till ett undantag:

$ sudo ufw allow 'Nginx HTTP'
bash

Kon­trol­le­ra sedan att in­stal­la­tio­nen lyckades:

$ systemctl status nginx
bash

Om NGINX har in­stal­le­rats korrekt får du ett resultat som ser ut så här:

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

Skapa kon­fi­gu­ra­tions­fi­len och anpassa servern

Nu kan du kon­fi­gu­re­ra ditt ser­ver­block för att förbereda NGINX-omvänd proxy för ditt system. För att göra det skapar du och öppnar en ny kon­fi­gu­ra­tions­fil med tex­tre­di­ge­ra­ren Nano. Ange följande kommando och se till att ersätta plats­hål­la­ren “your_domain” med namnet på din domän:

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

När filen är öppen, lägg till följande innehåll. Ersätt plats­hål­lar­na “din_domän” och “ser­ver­a­dress” med domänen och IP-adressen eller Unix-do­män­soc­ke­ten för din server:

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

Spara och stäng filen. In­ne­hål­let som visas är stan­dardin­ställ­ning­en för NGINX. Den använder port 80 för att svara på för­fråg­ning­ar från din domän och server. proxy_pass är en viktig komponent för NGINX:s roll som omvänd proxy. Du kan också ställa in yt­ter­li­ga­re servrar om det behövs.

Skapa sedan en länk till katalogen sites-enabled som NGINX öppnar i början. Använd följande kommando och glöm inte att ersätta plats­hål­la­ren “din_domän”:

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

Kon­trol­le­ra om det finns fel i din kon­fi­gu­ra­tion:

$ sudo nginx -t
bash

Om du inte får några fel­med­de­lan­den kan du nu starta om NGINX-omvänd proxy för att tillämpa in­ställ­ning­ar­na. För att göra det anger du följande kommando:

$ sudo systemctl restart nginx
bash

Nu är du klar med kon­fi­gu­ra­tio­nen av NGINX som omvänd proxy. I nästa avsnitt förklarar vi hur du kon­trol­le­rar proxyn. Denna testning är dock valfri.

Kon­trol­le­ra NGINX omvänd proxy med Gunicorn

Om du väljer att testa din NGINX-omvända proxy kan du van­ligt­vis använda din server för det. Om du använder din server öppnar du den med hjälp av skalet. Al­ter­na­tivt kan du använda den smidiga HTTP-webb­ser­vern Gunicorn, som fungerar mycket bra med en NGINX-omvänd proxy. Uppdatera först paketen och in­stal­le­ra servern:

$ sudo apt update
$ sudo apt install gunicorn
bash

Skapa sedan en enkel funktion som skickas som ett HTTP-svar till din webb­lä­sa­re. Använd nano igen:

$ nano test.py
bash

Öppna filen och ange följande kod:

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

Spara och stäng sedan filen. Starta därefter Gunicorn och öppna test­mo­du­len:

$ gunicorn --worker=2 test:app
bash

Re­sul­ta­tet bör se ut ungefär så här:

[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

Det är be­kräf­tel­sen på att Gunicorn in­te­ra­ge­rar med adressen http://127.0.0.1:8000. Öppna slutligen din webb­lä­sa­re och gå till domänen som du kon­fi­gu­re­ra­de med NGINX. NGINX omvänd proxy visar med­de­lan­det “This is a test” (Detta är ett test).

Gå till huvudmeny