Junior
Do czego służy Nginx?
sobes.tech AI
Odpowiedź od AI
Nginx jest asynchronicznym serwerem WWW wysokiej wydajności i serwerem proxy odwrotnym, używanym do:
- Obsługi plików statycznych: Szybkie i efektywne dostarczanie HTML, CSS, JavaScript, obrazów i innych zasobów statycznych. Dzięki architekturze asynchronicznej może obsługiwać dużą liczbę jednoczesnych połączeń przy niskim zużyciu zasobów.
- Proxy odwrotne: Przekazywanie żądań klientów do jednego lub wielu serwerów backend (aplikacji, API) i zwracanie odpowiedzi klientom. Umożliwia to równoważenie obciążenia, zwiększenie bezpieczeństwa (ukrywanie wewnętrznej struktury sieci) i obsługę terminacji SSL.
- Równoważenie obciążenia: Rozdzielanie przychodzących żądań między wiele serwerów w celu zwiększenia dostępności i skalowalności aplikacji. Obsługuje różne algorytmy równoważenia (np. round robin, najmniej połączeń).
- Pamięć podręczna: Buforowanie zasobów statycznych i dynamicznych w celu zmniejszenia obciążenia backendów i przyspieszenia odpowiedzi.
- Terminacja SSL/TLS: Deszyfrowanie ruchu HTTPS przed jego przesłaniem do backendu, co zmniejsza obciążenie serwerów aplikacji i umożliwia centralne zarządzanie certyfikatami.
- Kompresja: Kompresja danych (np. Gzip) przed wysłaniem do klienta w celu zmniejszenia ruchu i przyspieszenia ładowania stron.
- Ograniczanie prędkości żądań: Ochrona backendów przed przeciążeniem poprzez ograniczenie liczby żądań od pojedynczego klienta w określonym czasie.
- Zapora sieciowa (WAF): Podstawowa ochrona przed powszechnymi atakami webowymi (np. SQL injection, XSS).
# Przykład konfiguracji Nginx do obsługi plików statycznych i proxy API
server {
listen 80;
server_name example.com; # Nazwa domeny
location / {
root /var/www/html; # Ścieżka do plików statycznych
index index.html;
}
location /api/ {
proxy_pass http://backend_server:8080; # Proxy żądań API do innego serwera
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}