Hur man konfigurerar en NGINX-omvänd proxy på Ubuntu 22.04
Att använda NGINX som omvänd proxy är ett populärt alternativ. För att konfigurera det behöver du bara installera NGINX, skapa en konfigurationsfil och justera dina serverinställningar. Du kan också testa om konfigurationen lyckades med Gunicorn.
Hur man konfigurerar NGINX som en omvänd proxy
Omvända proxyservrar kan bidra till ökad säkerhet, flexibilitet och resurstillgänglighet. De placeras mellan klienten och servern och är inte synliga för användarna. NGINX omvänd proxy är en starkt rekommenderad lösning för inkommande förfrågningar. Nedan förklarar vi hur du installerar och konfigurerar den på Ubuntu 22.04.
Vilka är systemkraven för NGINX som omvänd proxy?
För att konfigurera en NGINX-omvänd proxy på Ubuntu 22.04 behöver du följande:
- En fullt konfigurerad Ubuntu-server
- Serverns IP-adress eller Unix-domänsockel
- Din servers domän
sudoprivilegier för servern
Installera NGINX som omvänd proxy
Uppdatera först ditt arkiv med hjälp av terminalen för att få tillgång till de senaste paketen. Installera sedan NGINX med kommandot apt install. Här är koden:
$ sudo apt update
$ sudo apt install nginxbashBekräfta med [Y] och tryck på [Enter] för att tillämpa inställningarna.
Konfigurera 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'bashKontrollera sedan att installationen lyckades:
$ systemctl status nginxbashOm NGINX har installerats 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"bashSkapa konfigurationsfilen och anpassa servern
Nu kan du konfigurera ditt serverblock 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 konfigurationsfil med textredigeraren Nano. Ange följande kommando och se till att ersätta platshållaren “your_domain” med namnet på din domän:
$ sudo nano /etc/nginx/sites-available/your_domainbashNär filen är öppen, lägg till följande innehåll. Ersätt platshållarna “din_domän” och “serveradress” med domänen och IP-adressen eller Unix-domänsocketen 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;
}
}txtSpara och stäng filen. Innehållet som visas är standardinställningen för NGINX. Den använder port 80 för att svara på förfrågningar 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 ytterligare 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 platshållaren “din_domän”:
$ sudo ln -s /etc/nginx/sites-available/your_domain/etc/nginx/sites-enabled/bashKontrollera om det finns fel i din konfiguration:
$ sudo nginx -tbashOm du inte får några felmeddelanden kan du nu starta om NGINX-omvänd proxy för att tillämpa inställningarna. För att göra det anger du följande kommando:
$ sudo systemctl restart nginxbashNu är du klar med konfigurationen av NGINX som omvänd proxy. I nästa avsnitt förklarar vi hur du kontrollerar proxyn. Denna testning är dock valfri.
Kontrollera NGINX omvänd proxy med Gunicorn
Om du väljer att testa din NGINX-omvända proxy kan du vanligtvis använda din server för det. Om du använder din server öppnar du den med hjälp av skalet. Alternativt kan du använda den smidiga HTTP-webbservern Gunicorn, som fungerar mycket bra med en NGINX-omvänd proxy. Uppdatera först paketen och installera servern:
$ sudo apt update
$ sudo apt install gunicornbashSkapa sedan en enkel funktion som skickas som ett HTTP-svar till din webbläsare. Använd nano igen:
$ nano test.pybashÖppna filen och ange följande kod:
def app(environ, start_response):
start_response("200 OK", [])
return iter([b"This is a test"])txtSpara och stäng sedan filen. Starta därefter Gunicorn och öppna testmodulen:
$ gunicorn --worker=2 test:appbashResultatet 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: 10570bashDet är bekräftelsen på att Gunicorn interagerar med adressen http://127.0.0.1:8000. Öppna slutligen din webbläsare och gå till domänen som du konfigurerade med NGINX. NGINX omvänd proxy visar meddelandet “This is a test” (Detta är ett test).