Co je reverzní proxy?
Standardní proxy server pracuje jménem klientů, často poskytováním soukromí nebo filtrováním obsahu. Reverzní proxy pracuje jménem serveru, zachycuje provoz a směruje jej na samostatný server.
Existuje několik důvodů, proč byste mohli chtít nainstalovat reverzní proxy. Jedním z hlavních důvodů je soukromí.
Pokud máte více serverů, reverzní proxy může pomoci vyrovnat zatížení mezi servery a zlepšit výkon. Protože reverzní proxy poskytuje klientům jediný kontaktní bod, může centralizovat protokolování a sestavování na více serverech.
Nginx může zlepšit výkon rychlým poskytováním statického obsahu a předáváním požadavků na dynamický obsah serverům Apache.
Tato příručka vám pomůže nainstalovat a nakonfigurovat reverzní proxy Nginx ve vašem systému.
Předpoklady
- Server Linux s Apache, PHP a firewallem
- Přístup k uživateli root pomocí sudo přístup
- Příkazový řádek nebo terminál systému Linux (Ctrl –Alt –T pro Ubuntu Alt –F2 pro CentOS)
- Správce balíčků (např. APT)
Nastavení reverzního proxy serveru Nginx
Krok 1:Nainstalujte Nginx z výchozích úložišť
Otevřete okno terminálu a zadejte následující:
sudo apt-get update
Umožněte správci balíčků dokončit aktualizaci seznamů softwaru a poté zadejte následující:
sudo apt-get install nginx
Nechte proces dokončit.
Krok 2 (volitelný):Nainstalujte Nginx z oficiálního úložiště
Přidat bezpečnostní klíč
V okně terminálu zadejte následující:
sudo wget https://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
Tím se stáhne podpisový klíč pro Nginx, který ověří, že stahujete autentický software.
Otevřete sources.list Soubor k úpravě
V terminálu zadejte následující:
sudo vi /etc/apt/sources.list
Přidat zdroje Nginx do seznamu úložiště
Zadejte následující řádky do /etc/apt/sources.list
soubor, který jste právě otevřeli:
deb https://nginx.org/packages/mainline/debian/ <CODENAME> nginx
deb-src https://nginx.org/packages/mainline/debian/ <CODENAME> nginx
Nahraďte <CODENAME>
s kódovým názvem vaší distribuce Debianu.
Uložit soubor a ukončete .
Nainstalujte nejnovější verzi Nginx
Chcete-li nainstalovat nejnovější verzi Nginx, použijte příkazy:
sudo apt-get remove nginx-common
sudo apt-get update
sudo apt-get install nginx
Krok 3:Spusťte Nginx a nakonfigurujte jej pro spuštění při restartu
Chcete-li spustit Nginx:
sudo systemctl start nginx
Chcete-li povolit Nginx:
sudo systemctl enable nginx
Chcete-li zkontrolovat, zda Nginx běží:
sudo systemctl status nginx
Výstup by vám měl ukázat, že služba je aktivní (běžící) , jako na obrázku níže:
Krok 4:Odpojení výchozího konfiguračního souboru
V terminálu zadejte následující:
sudo unlink /etc/nginx/sites-enabled/default
Krok 5:Vytvořte nový konfigurační soubor
Chcete-li vytvořit nový konfigurační soubor, zadejte:
cd /etc/nginx/sites-available/
sudo vi custom_server.conf
Nahraďte custom_server
se jménem, které je pro vás smysluplné. Do nového souboru zadejte:
server {
listen 80;
location / {
proxy_pass http://my_server;
}
}
Toto je velmi základní příklad reverzního proxy serveru Nginx. Nginx je nastaven tak, aby naslouchal veškerému provozu na portu 80 pro veškerý provoz.
proxy_pass
příkaz přesměruje veškerý provoz na portu 80 na http://my_server
. Stačí změnit http://my_server
na místo podle vašeho výběru a Nginx zachytí požadavky klientů a nasměruje je na místo, které určíte. Po dokončení uložte soubor a ukončete.
Krok 6:Propojit a aktivovat konfigurační soubor
Chcete-li aktivovat nový soubor Nginx, zadejte:
ln -s /etc/nginx/sites-available/custom_server.conf
/etc/nginx/sites-enabled/custom_server.conf
Jako obvykle nahraďte custom_server
s názvem konfiguračního souboru, který jste vytvořili v kroku 5.
Krok 7:Otestujte a restartujte Nginx
Test Nginx:
sudo service nginx configtest
Restartování Nginx:
sudo service nginx restart
Volitelné možnosti konfigurace Nginx
Vyrovnávací paměti proxy
Ve výchozím nastavení Nginx ukládá do vyrovnávací paměti provoz pro servery, pro které používá proxy. Vyrovnávací paměti zlepšují výkon serveru, protože odpověď serveru není odeslána, dokud klient nedokončí odesílání kompletní odpovědi.
Chcete-li vyrovnávací paměť vypnout, otevřete konfigurační soubor z kroku 5. V části umístění/sekce , přidejte následující:
proxy_buffering off;
Záhlaví požadavků
Záhlaví poskytují serveru informace o provedených požadavcích nebo o klientovi.
Nginx předefinuje dvě pole záhlaví:host
je nakonfigurován pro $proxy_host
a connection
je nakonfigurován pro close
. Pokud tato záhlaví používáte, nezapomeňte změnit chování v konfiguračním souboru.
Pokud jsou některé řetězce záhlaví prázdné, Nginx tato pole jednoduše odstraní.
Chcete-li změnit způsob, jakým Nginx zpracovává heathers, použijte následující příkazy v konfiguračním souboru:
location / {
proxy_set_header Host $host;
}
Tento příklad říká Nginxu, aby nastavil host
na $host
proměnná.
Chcete-li zabránit předání pole záhlaví serveru proxy, použijte prázdný řetězec takto:
location / {
proxy_set_header header-variable "";
}
Vyrovnávání zátěže
Konfigurační soubor můžete použít ke směrování provozu na několik serverů. Chcete-li použít tuto konfiguraci, váš konfigurační soubor bude vypadat podobně jako v tomto příkladu:
http {
server {
proxy_pass http://my_server
}
}
Jinými slovy, konfigurace HTTP jde mimo konfiguraci serveru z kroku 5.
Chcete-li vytvořit název pro skupinu serverů, použijte upstream
příkaz:
http {
upstream server_group {
server my.server1.com weight=3;
server my.server2.com;
}
server {
location / {
proxy_pass http://server_group;
}
}
}
Toto označení zahrnuje dva servery – my.server1.com
a my.server2.com
– a spojí je dohromady. Nginx zastupuje tuto skupinu serverů pod názvem http://server_group
. Můžete je přejmenovat, jak chcete.
Tento příklad používá weight
příkaz pro směrování tří požadavků na my.server1.com
a poté 1 požadavek na my.server2.com
. Toto je jedna z možností, jak ručně vyrovnat zatížení klienta mezi servery. Jinou metodou je jednoduše vynechat jakékoli označení, ve kterém Nginx bude požadavky rovnoměrně sbírat mezi uvedenými servery.