Základní Nginx proxy
Nginx je softwarový webový server s load managment a reverzní proxy s otevřeným zdrojovým kódem. Pracuje s protokoly HTTP, SMTP, POP3, IMAP a SSL. Zaměřuje se především na vysoký výkon a nízké nároky na paměť. Takto zní definice z wikipedie. V praxi se nginx využívá hlavně jako proxy server, který směruje weby na správné adresy a porty a případně je zaštiťuje ssl certifikátem. My si dnes ukážeme základní konfiguraci takové proxy. Návod je zaměřený hlavně na konfiguraci a ta proběhla v docker kontejneru, ale stejná bude i v případě instalace na čistý linux.
Fiktivní weby, které budeme zadávat do proxy:
- domena1.cz
- domena2.cz
- domena3.cz
Fiktivní servery, kde běží apache2 s weby pro domény:
- www1 a www2 - 192.168.1.10
- www3 - 192.168.1.11
Porty fiktivních webů:
- www1 - 8080
- www2 - 8081
- www3 - 8080
Server, kde běží nginx proxy:
- 192.168.1.2
Nginx proxy porty:
- 80
- 443
Nastavení nginx proxy
- Otevřeme si
/etc/nginx/nginx.conf
- Do http sekce nastavení si přidáme parametr, který nám zvýší počet znaků v doméně zadávané do konfigurace jako servername
server_names_hash_bucket_size 128;
- Tuto změnu uložíme a zavřeme soubor
- Přesuneme se do
/etc/nginx/conf.d/
a vytvoříme si zde souborproxy.conf
- Otevřeme si nově vytvořený konfigurační soubor a zadáme následující
-
server { listen 80; listen [::]:80; server_name domena1.cz; location / { proxy_pass http://192.168.1.10:8080; } } server { listen 80; listen [::]:80; server_name domena2.cz; location / { proxy_pass http://192.168.1.10:8081; } } server { listen 80; listen [::]:80; server_name domena3.cz; location / { proxy_pass http://192.168.1.11:8080; } }
-
- Uložíme a soubor zavřeme
- Nyní musíme službu nginx reloadnout aby si nabrala nový konfigurační soubor a aplikovala změny
service nginx reload
Nastavení DNS
Nyní chceme aby domény směrovali na proxy server, který je pak dál bude směrovat na ty správné apache servery a jejich porty, proto musíme nastavit DNS pro domény.
- Otevřeme si nastavení DNS pro doménu domena1.cz (tento postup lze replikovat i na zbylé domény)
- Vybereme si nový záznam typu A a správně vyplníme
- Název: domena1.cz
- TTL: 300
- Typ: A
- Hodnota: 192.168.1.2
- Uložíme záznam a necháme aplikovat změny - tyto změny se většinou propíšou do hodiny, pokud se jedná o veřejný DNS poskytovatele
Nyní když si zadáme do prohlížeče http://domena1.cz, tak bude mít následující flow:
http://domena1.cz -> 192.168.1.2:80 -> 192.168.1.10:8080