Kompletní průvodce vytvořením bezpečné reverzní proxy Nginx
Vytvoření bezpečné, spolehlivé a škálovatelné reverzní proxy je klíčové pro firmy a IT profesionály, kteří spravují webové stránky s vysokou návštěvností nebo složité aplikace. Nginx, open-source webový server a reverzní proxy, je výkonné řešení pro směrování, optimalizaci a zabezpečení provozu do vašich backendových služeb. V této příručce si ukážeme proces nastavení robustní reverzní proxy pomocí Nginxu na Ubuntu 24.04 a zahrneme do něj klíčové kroky, jako je šifrování TLS, omezení rychlosti a integrace s Cloudflare.
Pokud spravujete webové stránky na podnikové úrovni, platformy elektronického obchodování nebo mediální servery, tato příručka vám pomůže zvýšit výkon, zajistit provozuschopnost a ochránit vaši infrastrukturu před zranitelnostmi.
Co je reverzní proxy Nginx?
Reverzní proxy Nginx funguje jako zprostředkující server mezi klienty a backendovými službami. Přeposílá požadavky klientů na příslušný backendový server, čímž optimalizuje rozložení zátěže, zvyšuje zabezpečení a umožňuje funkce, jako je ukládání do mezipaměti, ukončení SSL a filtrování provozu. Toto nastavení je obzvláště užitečné pro hostování mediálních serverů, aplikací s více weby a služeb za firewally.
sbb-itb-59e1987
Proč potřebujete reverzní proxy
Reverzní proxy nabízí několik klíčových výhod:
- Vylepšené zabezpečeníSkryje IP adresy backendových serverů a povolí šifrování pomocí TLS/SSL.
- Vyrovnávání zátěžeRovnoměrně rozděluje provoz mezi více backendových serverů.
- OptimalizaceSnižuje latenci a zlepšuje efektivitu zdrojů.
- ŠkálovatelnostUsnadňuje správu scénářů s vysokou návštěvností.
- Snadná správaZjednodušuje konfiguraci více backendových služeb za sjednocenou doménou.
V tomto tutoriálu si ukážeme, jak:
- Nastavte Nginx jako reverzní proxy.
- Zabezpečte své nastavení pomocí TLS certifikátů Let's Encrypt.
- Nakonfigurujte pokročilé optimalizace, jako je omezení rychlosti a přesměrování požadavků.
- Integrujte Cloudflare a obejděte omezení portů poskytovatelů internetových služeb.
Krok 1: Instalace Nginx a Certbotu na Ubuntu 24.04
Aktualizujte svůj systém
Před instalací jakéhokoli softwaru se ujistěte, že máte aktuální verzi systému:
Aktualizace sudo apt a upgrade sudo apt Nainstalujte Nginx a Certbot
Pro instalaci Nginx a Certbotu s pluginem Nginx použijte následující příkazy:
sudo apt install nginx -y sudo apt install certbot python3-certbot-nginx -y Ověření instalace
Ověřte, že Nginx běží:
Jak nastavit stav systemctl v příkazu sudo v nginxu Chcete-li otestovat přístup, zjistěte IP adresu vašeho serveru:
IP adresa Zadejte IP adresu v prohlížeči. V případě úspěchu se zobrazí výchozí uvítací stránka Nginx.
Krok 2: Konfigurace pravidel firewallu
Povolit nekomplikovaný firewall (UFW)
UFW umožňuje snadnou správu pravidel firewallu:
sudo ufw povolit 'Nginx Full' sudo ufw povolit OpenSSH sudo ufw povolit Zkontrolujte stav firewallu a ujistěte se, že jsou otevřené správné porty:
stav sudo ufw Krok 3: Nastavení konfigurace proxy serveru Nginx
Vytvoření vlastních konfiguračních souborů
Pro větší flexibilitu a zabezpečení použijte k ukládání specifických konfigurací soubory s úryvky kódu. Vytvořte následující soubory:
- Bezpečnostní záhlaví:
Definujte bezpečnostní záhlaví pro zvýšení ochrany:sudo nano /etc/nginx/snippets/security-headers.confadd_header X-Frame-Options "STEJNÝ POČET"; add_header X-Content-Type-Options "nosniff"; add_header X-XSS-Protection "1; mode=block"; - Nastavení proxy serveru:
Optimalizujte dlouhé streamy a zabraňte pomalým odezvám:sudo nano /etc/nginx/snippets/proxy.confproxy_connect_timeout 60 s; proxy_send_timeout 60 s; proxy_read_timeout 60 s; - Limity sazeb:
Zmírněte nadměrné požadavky:sudo nano /etc/nginx/snippets/rate-limit.conflimit_req_zone $binary_remote_addr zóna=mylimit:10m rychlost=10r/s;
Zahrnout úryvky do hlavní konfigurace
Upravte hlavní konfiguraci Nginxu:
sudo nano /etc/nginx/nginx.conf Přidejte následující pod http blok:
zahrnout /etc/nginx/snippets/*.conf; Restartujte Nginx, aby se změny projevily:
sudo systemctl reload nginx Krok 4: Nastavení reverzní proxy pro backendovou službu
Vytvořte virtuálního hostitele
Vytvořte konfigurační soubor pro vaši backendovou službu:
sudo nano /etc/nginx/sites-available/jellyfin Příklad konfigurace pro mediální server Jellyfin:
server { listen 80; název_serveru jelly.vasedomena.com; umístění / { proxy_pass http://10.10.0.112:8096; include /etc/nginx/snippets/proxy.conf; } } Povolte web vytvořením symbolického odkazu:
sudo ln -s /etc/nginx/sites-available/jellyfin /etc/nginx/sites-enabled/ Otestujte a znovu nainstalujte Nginx:
sudo nginx -t sudo systemctl reload nginx Krok 5: Zabezpečení vaší domény pomocí Let's Encrypt TLS
Pro zabezpečení vaší domény použijte Let's Encrypt k vydávání bezplatných certifikátů:
sudo certbot --nginx -d jelly.yourdomain.com Certbot automaticky nakonfiguruje SSL ve vašem souboru Nginx webu. Chcete-li zajistit automatické obnovení certifikátů, ověřte, že je aktivní časovač systemd:
sudo systemctl list-timers | grep certbot Krok 6: Integrace Cloudflare pro dodatečné zabezpečení a obcházení portů poskytovatele internetových služeb
Nainstalujte si Cloudflared
Cloudflared vytváří zabezpečený tunel pro směrování provozu přes Cloudflare a obchází omezení poskytovatelů internetových služeb na portech 80 a 443:
- Stáhněte si
.debbalíček ze stránky GitHubu Cloudflare. - Nainstalujte balíček:
sudo dpkg -i cloudflared-version.deb
Konfigurace tunelu
Ověřte se pomocí svého účtu Cloudflare:
přihlášení do tunelu Cloudflared Vytvořte nový tunel:
tunel cloudflared vytvořit můj tunel Upravte konfigurační soubor Cloudflare:
sudo nano /etc/cloudflared/config.yml Příklad konfigurace:
tunel: soubor s přihlašovacími údaji my-tunnel: /home/user/.cloudflared/my-tunnel.json ingress: - hostname: jelly.yourdomain.com service: http://localhost:8096 - service: http_status:404 Spuštění a povolení tunelové služby:
sudo systemctl povolit cloudflared sudo systemctl spustit cloudflared Klíčové věci
- Reverzní proxy NginxNezbytné pro bezpečné směrování provozu a optimalizaci backendových služeb.
- Šifrování TLSPoužijte Let's Encrypt k zabezpečení vašich domén pomocí bezplatných SSL certifikátů.
- Pravidla firewalluOtevřete potřebné porty pro HTTP (80), HTTPS (443) a SSH (22).
- Optimalizace zabezpečeníImplementujte hlavičky a omezení rychlosti pro prevenci útoků.
- Integrace s CloudflarePoužívejte tunely Cloudflared pro bezpečný hosting přátelský k poskytovatelům internetových služeb.
- AutomatizaceČasovače Systemd zajišťují automatické obnovení SSL certifikátů.
Závěr
Nastavení bezpečné reverzní proxy Nginx vyžaduje pozornost k detailům a pečlivou konfiguraci, ale výsledek rozhodně stojí za to úsilí. Ať už hostujete mediální servery jako Jellyfin, nebo spravujete podnikové aplikace, tato příručka vás vybaví nástroji a znalostmi pro vybudování vysoce bezpečného a efektivního prostředí. Díky funkcím, jako je TLS, tunely Cloudflare a pokročilé optimalizace, je vaše infrastruktura připravena na moderní požadavky.
Zdroj: „Přestaňte zveřejňovat své aplikace! Vytvořte si bezpečnou reverzní proxy Nginx!“ – KeepItTechie, YouTube, 19. srpna 2025 – https://www.youtube.com/watch?v=MzbhS2S7H_g
Použití: Vloženo pro referenci. Stručné citace použité pro komentář/recenzi.