Sådan konfigureres en NGINX-reverse-proxy på Ubuntu 22.04
Det er en udbredt løsning at bruge NGINX som reverse proxy. For at konfigurere det skal du blot installere NGINX, oprette en konfigurationsfil og justere serverindstillingerne. Du kan også teste, om opsætningen er lykkedes, ved hjælp af Gunicorn.
Sådan konfigureres NGINX som en reverse proxy
Reverse proxyservere kan bidrage til at øge sikkerheden, fleksibiliteten og ressourcetilgængeligheden. De placeres mellem klienten og serveren og er ikke synlige for brugerne. NGINX-reverse-proxyserveren er en stærkt anbefalet løsning til indgående anmodninger. Nedenfor forklarer vi, hvordan du installerer og konfigurerer den på Ubuntu 22.04.
Hvad er systemkravene til NGINX som reverse proxy?
For at konfigurere en NGINX-reverse-proxy på Ubuntu 22.04 skal du bruge følgende:
- En fuldt konfigureret Ubuntu-server
- Serverens IP-adresse eller Unix-domænesocket
- Domænet for din server
sudorettigheder til serveren
Installation af NGINX som reverse proxy
Start med at opdatere dit pakkerepositorium via terminalen, så du får adgang til de nyeste pakker. Installer derefter NGINX ved hjælp af kommandoen apt install. Her er koden:
$ sudo apt update
$ sudo apt install nginxbashBekræft med [Y] og tryk på [Enter] for at gemme indstillingerne.
Konfigurer derefter din firewall, så NGINX har adgang til din server. Du kan bruge følgende kommando til at tilføje en undtagelse:
$ sudo ufw allow 'Nginx HTTP'bashKontroller derefter, at installationen er gennemført korrekt:
$ systemctl status nginxbashHvis NGINX er installeret korrekt, vil du få et resultat, der ser sådan ud:
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"bashOprettelse af konfigurationsfilen og tilpasning af serveren
Nu kan du konfigurere din serverblok for at forberede NGINX-reverseproxyen til dit system. For at gøre det skal du oprette og åbne en ny konfigurationsfil med teksteditoren Nano. Indtast følgende kommando, og sørg for at erstatte pladsholderen »your_domain« med navnet på dit domæne:
$ sudo nano /etc/nginx/sites-available/your_domainbashNår filen er åben, skal du indsætte følgende indhold. Erstat pladsholderne »your_domain« og »server_address« med domænet og IP-adressen eller Unix-domænesocket for 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;
}
}txtGem og luk filen. Det viste indhold er standardopsætningen for NGINX. Den bruger port 80 til at besvare anmodninger fra dit domæne og din server. proxy_pass er en vigtig komponent for NGINX’s funktion som reverse proxy. Du kan også konfigurere yderligere servere, hvis det er nødvendigt.
Opret derefter et link til den mappe sites-enabled som NGINX åbner i starten. Brug følgende kommando, og husk at erstatte pladsholderen »your_domain«:
$ sudo ln -s /etc/nginx/sites-available/your_domain/etc/nginx/sites-enabled/bashKontroller, om der er fejl i din konfiguration:
$ sudo nginx -tbashHvis der ikke vises nogen fejlmeddelelser, kan du nu genstarte NGINX-reverseproxyen for at anvende indstillingerne. Det gør du ved at indtaste følgende kommando:
$ sudo systemctl restart nginxbashDu er nu færdig med at konfigurere NGINX som en reverse proxy. I det næste afsnit forklarer vi, hvordan du tester proxyen. Denne test er dog valgfri.
Kontrol af NGINX-reverse-proxy med Gunicorn
Hvis du vælger at teste din NGINX-reverse-proxy, kan du som regel bruge din egen server til det. Hvis du bruger din egen server, skal du åbne den via kommandolinjen. Alternativt kan du bruge den lette HTTP-webserver Gunicorn, som fungerer rigtig godt sammen med en NGINX-reverse-proxy. Start med at opdatere pakkerne og installere serveren:
$ sudo apt update
$ sudo apt install gunicornbashOpret derefter en simpel funktion, der skal sendes som et HTTP-svar til din browser. Brug igen nano:
$ nano test.pybashÅbn filen, og indsæt følgende kode:
def app(environ, start_response):
start_response("200 OK", [])
return iter([b"This is a test"])txtGem og luk derefter filen. Start derefter Gunicorn, og åbn testmodulet:
$ gunicorn --worker=2 test:appbashResultatet bør se nogenlunde sådan her ud:
[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 er bekræftelsen på, at Gunicorn kommunikerer med adressen http://127.0.0.1:8000. Til sidst skal du åbne din browser og gå til det domæne, du har konfigureret med NGINX. NGINX-reverseproxyen vil vise meddelelsen »Dette er en test«.