Kontaktujte nás

info@serverion.com

Zavolejte nám

+1 (302) 380 3902

Kompletní průvodce vytvořením bezpečné reverzní proxy Nginx

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.

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:

  1. Bezpečnostní záhlaví:
    sudo nano /etc/nginx/snippets/security-headers.conf 
    Definujte bezpečnostní záhlaví pro zvýšení ochrany:
    add_header X-Frame-Options "STEJNÝ POČET"; add_header X-Content-Type-Options "nosniff"; add_header X-XSS-Protection "1; mode=block"; 
  2. Nastavení proxy serveru:
    sudo nano /etc/nginx/snippets/proxy.conf 
    Optimalizujte dlouhé streamy a zabraňte pomalým odezvám:
    proxy_connect_timeout 60 s; proxy_send_timeout 60 s; proxy_read_timeout 60 s; 
  3. Limity sazeb:
    sudo nano /etc/nginx/snippets/rate-limit.conf 
    Zmírněte nadměrné požadavky:
    limit_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:

  1. Stáhněte si .deb balíček ze stránky GitHubu Cloudflare.
  2. 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.

Související příspěvky na blogu

cs_CZ