Kompletny przewodnik po tworzeniu bezpiecznego odwrotnego serwera proxy Nginx
Stworzenie bezpiecznego, niezawodnego i skalowalnego odwrotnego proxy jest kluczowe dla firm i specjalistów IT zarządzających witrynami internetowymi o dużym ruchu lub złożonymi aplikacjami. Nginx, serwer WWW typu open source i odwrotny proxy, to potężne rozwiązanie do routingu, optymalizacji i zabezpieczania ruchu do usług zaplecza. W tym przewodniku przeprowadzimy Cię przez proces konfiguracji niezawodnego odwrotnego proxy z wykorzystaniem Nginx w systemie Ubuntu 24.04, omawiając kluczowe kroki, takie jak szyfrowanie TLS, ograniczanie przepustowości i integracja z Cloudflare.
Jeśli zarządzasz witrynami internetowymi klasy enterprise, platformami e-commerce lub serwerami multimedialnymi, ten przewodnik pomoże Ci zwiększyć wydajność, zagwarantować dostępność i zabezpieczyć infrastrukturę przed lukami w zabezpieczeniach.
Czym jest serwer proxy odwrotny Nginx?
Odwrotny serwer proxy Nginx działa jako serwer pośredniczący między klientami a usługami zaplecza. Przekazuje żądania klientów do odpowiedniego serwera zaplecza, optymalizując rozkład obciążenia, zwiększając bezpieczeństwo i udostępniając takie funkcje, jak buforowanie, kończenie połączeń SSL i filtrowanie ruchu. Taka konfiguracja jest szczególnie przydatna w przypadku hostowania serwerów multimediów, aplikacji wielostanowiskowych i usług za zaporami sieciowymi.
sbb-itb-59e1987
Dlaczego potrzebujesz odwrotnego serwera proxy
Odwrotny serwer proxy zapewnia kilka kluczowych korzyści:
- Zwiększone bezpieczeństwo: Ukrywa adresy IP serwerów zaplecza i włącza szyfrowanie za pomocą protokołu TLS/SSL.
- Równoważenie obciążenia:Równomiernie rozdziela ruch pomiędzy wiele serwerów zaplecza.
- Optymalizacja:Zmniejsza opóźnienia i poprawia efektywność wykorzystania zasobów.
- Skalowalność:Ułatwia zarządzanie scenariuszami o dużym natężeniu ruchu.
- Łatwość zarządzania:Uproszcza konfigurację wielu usług zaplecza za ujednoliconą domeną.
W tym samouczku pokażemy, jak:
- Skonfiguruj Nginx jako odwrotny serwer proxy.
- Zabezpiecz swoją konfigurację za pomocą certyfikatów TLS Let's Encrypt.
- Skonfiguruj zaawansowane optymalizacje, takie jak ograniczanie przepustowości i przekazywanie żądań.
- Zintegruj Cloudflare, aby ominąć ograniczenia portów dostawcy usług internetowych.
Krok 1: Instalowanie Nginx i Certbota w Ubuntu 24.04
Zaktualizuj swój system
Przed zainstalowaniem jakiegokolwiek oprogramowania upewnij się, że system jest aktualny:
sudo apt update i sudo apt upgrade Zainstaluj Nginx i Certbot
Aby zainstalować Nginx i Certbot za pomocą wtyczki Nginx, użyj następujących poleceń:
sudo apt install nginx -y sudo apt install certbot python3-certbot-nginx -y Zweryfikuj instalację
Sprawdź, czy Nginx działa:
sudo systemctl status nginx Aby przetestować dostęp, ustal adres IP swojego serwera:
adres IP a Wejdź na adres IP w przeglądarce. Jeśli się powiedzie, zobaczysz domyślną stronę powitalną Nginx.
Krok 2: Konfigurowanie reguł zapory sieciowej
Włącz nieskomplikowaną zaporę sieciową (UFW)
Dzięki UFW możesz łatwo zarządzać regułami zapory sieciowej:
sudo ufw zezwól na „Nginx Full” sudo ufw zezwól na OpenSSH sudo ufw włącz Sprawdź stan swojej zapory sieciowej, aby upewnić się, że otwarte są właściwe porty:
sudo ufw status Krok 3: Konfigurowanie serwera proxy Nginx
Utwórz niestandardowe pliki konfiguracyjne
Aby zapewnić większą elastyczność i bezpieczeństwo, użyj plików fragmentów kodu do przechowywania określonych konfiguracji. Utwórz następujące pliki:
- Nagłówki bezpieczeństwa:
Zdefiniuj nagłówki zabezpieczeń, aby zwiększyć ochronę:sudo nano /etc/nginx/snippets/security-headers.confadd_header X-Frame-Options "SAMEORIGIN"; add_header X-Content-Type-Options "nosniff"; add_header X-XSS-Protection "1; mode=block"; - Ustawienia proxy:
Zoptymalizuj długie strumienie i zapobiegaj powolnym reakcjom:sudo nano /etc/nginx/snippets/proxy.confproxy_connect_timeout 60 s; proxy_send_timeout 60 s; proxy_read_timeout 60 s; - Limity szybkości:
Ogranicz nadmierne żądania:sudo nano /etc/nginx/snippets/rate-limit.conflimit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;
Dołącz fragmenty kodu do konfiguracji głównej
Edytuj główną konfigurację Nginx:
sudo nano /etc/nginx/nginx.conf Dodaj poniższe pod http blok:
zawiera /etc/nginx/snippets/*.conf; Uruchom ponownie Nginx, aby zastosować zmiany:
sudo systemctl reload nginx Krok 4: Konfigurowanie odwrotnego serwera proxy dla usługi zaplecza
Utwórz wirtualnego hosta
Utwórz plik konfiguracyjny dla swojej usługi zaplecza:
sudo nano /etc/nginx/sites-available/jellyfin Przykładowa konfiguracja serwera multimediów Jellyfin:
serwer { nasłuchuj 80; nazwa_serwera jelly.twoja_domena.com; lokalizacja / { hasło_proxy http://10.10.0.112:8096; dołącz /etc/nginx/snippets/proxy.conf; } } Włącz witrynę, tworząc łącze symboliczne:
sudo ln -s /etc/nginx/sites-available/jellyfin /etc/nginx/sites-enabled/ Przetestuj i przeładuj Nginx:
sudo nginx -t sudo systemctl reload nginx Krok 5: Zabezpieczanie domeny za pomocą Let’s Encrypt TLS
Aby zabezpieczyć swoją domenę, użyj Let's Encrypt do wydawania bezpłatnych certyfikatów:
sudo certbot --nginx -d jelly.twojadomena.com Certbot automatycznie konfiguruje protokół SSL w pliku witryny Nginx. Aby upewnić się, że certyfikaty są odnawiane automatycznie, sprawdź, czy licznik czasu systemd jest aktywny:
sudo systemctl list-timers | grep certbot Krok 6: Integracja Cloudflare w celu zapewnienia dodatkowego bezpieczeństwa i ominięcia portu dostawcy usług internetowych
Zainstaluj Cloudflared
Cloudflared tworzy bezpieczny tunel do kierowania ruchem przez Cloudflare, omijając ograniczenia dostawców usług internetowych na portach 80 i 443:
- Pobierz
.debpakiet ze strony Cloudflare na GitHubie. - Zainstaluj pakiet:
sudo dpkg -i cloudflared-version.deb
Skonfiguruj tunel
Zweryfikuj swoje konto Cloudflare:
logowanie do tunelu Cloudflared Utwórz nowy tunel:
tunel Cloudflared utwórz mój tunel Edytuj plik konfiguracyjny Cloudflare:
sudo nano /etc/cloudflared/config.yml Przykładowa konfiguracja:
tunel: my-tunnel plik-poświadczeń: /home/user/.cloudflared/my-tunnel.json przychodzący: - nazwa hosta: jelly.twojadomena.com usługa: http://localhost:8096 - usługa: http_status:404 Uruchom i włącz usługę tunelowania:
sudo systemctl enable cloudflared sudo systemctl start cloudflared Najważniejsze wnioski
- Serwer proxy odwrotny Nginx:Niezbędne do bezpiecznego kierowania ruchem i optymalizacji usług zaplecza.
- Szyfrowanie TLS: Użyj Let's Encrypt, aby zabezpieczyć swoje domeny za pomocą bezpłatnych certyfikatów SSL.
- Reguły zapory sieciowej:Otwórz niezbędne porty dla HTTP (80), HTTPS (443) i SSH (22).
- Optymalizacja bezpieczeństwa:Wprowadź nagłówki i ograniczenia przepustowości, aby zapobiec atakom.
- Integracja z Cloudflare:Używaj tuneli Cloudflared, aby zapewnić bezpieczny hosting przyjazny dla dostawców usług internetowych.
- Automatyzacja:Timery Systemd zapewniają automatyczne odnawianie certyfikatów SSL.
Wniosek
Konfiguracja bezpiecznego odwrotnego proxy Nginx wymaga dbałości o szczegóły i starannej konfiguracji, ale korzyści są warte wysiłku. Niezależnie od tego, czy hostujesz serwery multimediów, takie jak Jellyfin, czy zarządzasz aplikacjami korporacyjnymi, ten przewodnik wyposaży Cię w narzędzia i wiedzę niezbędne do zbudowania wysoce bezpiecznego i wydajnego środowiska. Dzięki funkcjom takim jak TLS, tunele Cloudflare i zaawansowane optymalizacje, Twoja infrastruktura jest gotowa na współczesne wymagania.
Źródło: „Przestań ujawniać swoje aplikacje! Zbuduj bezpieczny serwer proxy odwrotnego Nginx!” – KeepItTechie, YouTube, 19 sierpnia 2025 r. – https://www.youtube.com/watch?v=MzbhS2S7H_g
Zastosowanie: Osadzone w celach informacyjnych. Krótkie cytaty użyte w komentarzu/recenzji.
Powiązane wpisy na blogu
- Opanowanie konfiguracji Nginx w celu uzyskania optymalnej wydajności serwera WWW
- Opanowanie konfiguracji NGINX: jak Serverion odblokowuje sukces hostingu internetowego B2B
- Powtórka konfiguracji NGINX: Serverion przywraca zapomnianą sztukę dostrajania pamięci podręcznej proxy
- Zapomniana granica konfiguracji NGINX: zanurzenie się Serverion w mikrocaching FastCGI