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.