Co je reverzní proxy?
Reverzní proxy je server, který je umístěn před jedním nebo více webovými servery a zachycuje požadavky od klientů. Když se klienti pokusí připojit k původnímu serveru webové stránky, tyto požadavky zachytí reverzní proxy server. Proxy server předává tyto požadavky proxy serveru a přijímá od něj odpovědi, aby je odeslal klientům.
Výhody reverzního proxy:
- Zvyšuje zabezpečení
- Vyrovnávání zátěže
- Ukládání do mezipaměti
- Šifrování SSL a další
Průvodce instalací
Předběžné požadavky
- Webový server Nginx nainstalovaný na Ubuntu Server 20.04 LTS
- Web nakonfigurovaný na Ubuntu Server 20.04 LTS
- SSH připojení ke vzdáleným počítačům (Nginx a web)
V této příručce vám ukážu, jak můžete nakonfigurovat webový server NGINX jako reverzní proxy pomocí několika jednoduchých kroků. K tomuto účelu jsem použil webovou stránku nasazenou na serveru ubuntu 20.04 LTS. To bude fungovat jako hlavní server nebo můžete říci proxy server. Webový server Nginx je nasazen na jiném serveru ubuntu 20.04 LTS, který v tomto tutoriálu nakonfiguruji jako reverzní proxy. Na svém místním počítači mám nainstalovaný Linux Mint 20.02, odkud budu vytvářet vzdálená připojení pomocí:
- IP adresa virtuálního počítače Nginx Web Server:10.11.120.2
- IP adresa virtuálního počítače nasazených webových stránek:10.11.120.3
Začněme!
Krok 1:SSH na stroj Nginx
Prvním krokem je připojení ke vzdálenému počítači, kde je nainstalován Nginx. Na tomto počítači nakonfigurujeme Nginx jako reverzní proxy. Chcete-li to provést, spusťte níže uvedený příkaz přidáním uživatelského jména a IP počítače, na kterém máte nasazený Nginx. V mém případě je to nginx a 10.11.120.2.
ssh [email protected]
Krok 2:Zakažte předem nakonfigurovaného virtuálního hostitele Nginx:
Dále zrušte propojení výchozí konfigurace virtuálního hostitele Nginx spuštěním příkazu níže:
unlink /etc/nginx/sites-enabled/default
Krok 3:Vytvořte konfigurační soubor Reverse Proxy
Poté vytvoříme konfigurační soubor reverzního proxy.
Chcete-li to provést, přejděte do adresáře sites-available po cestě uvedené v příkazu níže:
cd /etc/nginx/sites-available
Nyní vytvořte konfigurační soubor reverzního proxy a otevřete jej pomocí nano editoru takto:
sudo nano example.conf
Zkopírujte následující řádky a vložte je do souboru, který jste právě vytvořili.
server { listen 80; server_name example.com; location / { proxy_pass http://10.11.120.3:80; } }
Tato konfigurace říká, že reverzní proxy Nginx naslouchá na portu 80 a přesměrovává všechny příchozí požadavky na připojení example.com směrem k portu 80 serveru 10.11.12.3.
Krok 4:Aktivujte soubor vytvořením symbolického odkazu
Zde soubor uložíme a aktivujeme vytvořením symbolického odkazu, jako je tento:
sudo ln -s /etc/nginx/sites-available/example.conf /etc/nginx/sites-enabled/
Krok 5:Otestujte konfigurační soubor
Je čas otestovat náš konfigurační soubor reverzního proxy na chyby. Chcete-li to provést, spusťte následující příkaz:
sudo nginx -t
Pokud se zobrazí zpráva „syntaxe je v pořádku“, jak je uvedeno níže, znamená to, že můžete začít.
Krok 6:Restartujte Nginx
Posledním krokem je restartování webového serveru Nginx, aby se nový konfigurační soubor reverzního proxy, který jsme právě přidali, nakonfiguroval s webovým serverem Nginx. To provedete spuštěním následujícího příkazu:
sudo systemctl restart nginx
Nyní to můžete otestovat otevřením webového prohlížeče na vašem počítači a spuštěním webové stránky. Prostřednictvím Nginx budete připojeni k počítači 10.11.120.3.
Pokud web běží dobře, znamená to, že jste úspěšně nakonfigurovali Nginx Reverse Proxy. Gratulujeme! Odvedli jste skvělou práci!
V tomto tutoriálu jste viděli, jak můžete snadno nakonfigurovat webový server Nginx jako reverzní proxy přidáním konfiguračního souboru. Tímto způsobem můžete chránit svůj hlavní server před různými kybernetickými útoky nebo jej můžete využít k vyvážení zátěže příchozího těžkého provozu. Vše je na vás.
Chcete-li zjistit, jak můžete nakonfigurovat Nginx Server Block a Secure Nginx pomocí Let's Encrypt SSL na Rocky Linux 8 / CentOS 8, navštivte:
https://linuxways.net/centos/how-to-configure-nginx-server-block-and-secure-nginx-with-lets-encrypt-ssl-on-rocky-linux-8-centos-8/