8 sposobów na precyzyjne dostrojenie wydajności NGINX w systemie Linux
NGINX to popularny, darmowy serwer WWW o otwartym kodzie źródłowym. Domyślne konfiguracje NGINX są wystarczająco dobre, aby serwer WWW działał.
Jeśli jednak chcesz w pełni korzystać z NGINX, musisz pobawić się plikami konfiguracyjnymi i ustawić parametry, które zoptymalizują wydajność serwera. Pliki konfiguracyjne znajdziesz w katalogu /etc/nginx na komputerze z systemem Linux.
Co to jest NGINX?
NGINX to nowoczesny serwer WWW, którego można używać jako streamera multimediów, serwera poczty, odwrotnego proxy, modułu równoważenia obciążenia, serwera pamięci podręcznej i nie tylko.
Używany przez wiele dużych profili, takich jak VMware, IBM, Cisco, Apple, Microsoft LinkedIn, Netflix, Facebook, Twitter itp., NGINX jest powszechnie znany ze swojej najwyższej klasy wydajności. Kolejną zaletą korzystania z NGINX jest to, że jest łatwy w konfiguracji i nauce.
Wymagania wstępne do dostrojenia wydajności NGINX w systemie Linux
Przed rozpoczęciem konfiguracji NGINX musisz spełnić następujące wymagania:
- Serwer NGINX wdrożony i skonfigurowany w systemie Linux
- Podstawowe zrozumienie NGINX i jego plików konfiguracyjnych
Jeśli spełniasz te wymagania, możesz dostroić NGINX w celu uzyskania optymalnej wydajności. Zobaczmy, jak to zrobić.
1. Skonfiguruj procesy robocze w NGINX
Architektura NGINX składa się z jednego procesu głównego i kilku procesów roboczych. Zadaniem procesu głównego jest ocena konfiguracji i zarządzanie pracownikami. Z drugiej strony rolą procesu roboczego jest obsługa przychodzących żądań i tworzenie połączenia między klientem a serwerem.
Wartość procesu jest domyślnie ustawiona na auto . Ustawia liczbę procesów roboczych równą liczbie dostępnych rdzeni procesora. Aby dowiedzieć się, ile rdzeni procesora jest obecnych w twoim systemie, uruchom następujące polecenie:
grep processor /proc/cpuinfo | wc -l
Jeśli chcesz zwiększyć liczbę procesów roboczych, musisz to skonfigurować w pliku konfiguracyjnym NGINX.
Otwórz plik za pomocą nano:
nano etc/nginx/nginx.conf
Aby skonfigurować więcej procesów roboczych, zmień wartość domyślną na maksymalną liczbę dostępnych rdzeni procesora w systemie.
2. Skonfiguruj połączenia robocze
Kolejnym parametrem, który możesz zmodyfikować, aby zwiększyć wydajność NGINX, są połączenia robocze. Jest to maksymalna liczba połączeń TCP, które każdy proces roboczy może jednocześnie obsłużyć.
Większość systemów ma domyślną wartość 512 połączeń, ale wiele nowoczesnych systemów obsługuje również większą liczbę. Możesz sprawdzić, ile połączeń obsługuje Twój system za pomocą:
ulimit -n
Wynikiem będzie maksymalna liczba obsługiwanych połączeń. Następnie możesz zmodyfikować zmienną worker_connections w pliku konfiguracyjnym NGINX, aby poprawić wydajność.
3. Zezwól na kompresję GZIP w NGINX
NGINX używa GZIP do kompresji i dekompresji plików. Jeśli jest włączona w pliku konfiguracyjnym NGINX, możesz zaoszczędzić przepustowość i wydłużyć czas ładowania strony internetowej, gdy połączenie jest wolne.
Aby zezwolić na kompresję GZIP, dodaj następujące wiersze w pliku konfiguracyjnym NGINX:
server {
gzip on;
gzip_vary on;
gzip_min_length 10240;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml;
gzip_disable "MSIE [1-6]\.";
}
4. Ogranicz wartość limitu czasu w NGINX
Zmniejszone wartości limitów czasu również odgrywają ważną rolę w zwiększaniu wydajności NGINX. Połączenia utrzymujące aktywność zmniejszają obciążenie procesora i sieci podczas otwierania i zamykania połączeń.
Możesz zmodyfikować następujące parametry w pliku konfiguracyjnym, aby ograniczyć limity czasu:
http
{
client_body_timeout 12;
client_header_timeout 12;
keepalive_timeout 15;
send_timeout 10;
}
5. Dostosuj rozmiar bufora
Możesz także dostosować bufory NGINX, aby zoptymalizować wydajność serwera. Jeśli rozmiar bufora jest zbyt mały, NGINX zapisze do pliku tymczasowego, co spowoduje ciągłe wykonywanie ogromnych operacji we/wy.
Musisz ustawić następujące parametry bufora, aby NGINX działał najlepiej:
http
{
client_body_buffer_size 10K;
client_header_buffer_size 1k;
client_max_body_size 8m;
large_client_header_buffers 4 4k;
}
6. Wyłącz dzienniki dostępu lub Włącz buforowanie dzienników dostępu
Dzienniki zajmują dużo miejsca na dysku i cykli CPU/IO, co może mieć wpływ na wydajność serwera, jeśli rejestruje on każde żądanie.
Możesz wyłączyć dzienniki dostępu, co pozwoli zaoszczędzić trochę miejsca na dysku i procesora. Aby wyłączyć dzienniki dostępu, dodaj następujący wiersz do pliku konfiguracyjnego NGINX:
access_log off;
Dzienniki są ważne, ponieważ pomagają w rozwiązywaniu problemów. Całkowite wyłączenie dzienników nie jest dobrą praktyką. W takim przypadku można włączyć buforowanie dzienników dostępu. Umożliwi to NGINX buforowanie serii dzienników i jednoczesne zapisywanie ich w pliku dziennika zamiast stosowania różnych operacji dziennika na każde żądanie.
Dodaj następujący wiersz w pliku konfiguracyjnym NGINX, aby umożliwić buforowanie dzienników dostępu:
access_log /var/log/nginx/access.log main buffer=16k
7. Dostosuj okres buforowania zawartości statycznej w NGINX
Zawartość witryny, która pozostaje taka sama na wszystkich stronach, nazywana jest treścią statyczną. Buforowanie tych treści pozwala na umieszczanie ich w łatwo dostępnych miejscach. Mechanizm ten zmniejsza wykorzystanie przepustowości, umożliwia szybką dostępność, a co za tym idzie poprawia wydajność serwisu.
Gdy klient zażąda zawartości statycznej, serwer udostępni wersję zawartości z pamięci podręcznej. Dodaj następujące wiersze w pliku wirtualnego hosta umieszczonym w katalogu /etc/nginx/sites-available :
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 90d;
}
Ta konfiguracja będzie przechowywać pliki w pamięci podręcznej przez 90 dni od czasu ostatniego dostępu do przeglądarki.
8. Włącz otwartą pamięć podręczną plików w NGINX
Możesz także użyć parametrów otwartej pamięci podręcznej plików w pliku konfiguracyjnym NGINX, aby zwiększyć jego wydajność. Ta dyrektywa umożliwia buforowanie na serwerze deskryptora pliku i często odwiedzanych plików.
Dodaj następujące wiersze w sekcji http w pliku konfiguracyjnym, aby włączyć pamięć podręczną otwartych plików:
http {
open_file_cache max=1024 inactive=10s;
open_file_cache_valid 60s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
}
Wydobądź to, co najlepsze z NGINX, modyfikując jego pliki konfiguracyjne
Dobrą praktyką przy zmianie konfiguracji jest zajmowanie się jednym ustawieniem naraz i testowanie go. Jeśli to działa, przejdź do następnego ustawienia. Jeśli nie, zawsze możesz zmienić konfigurację z powrotem na wartość domyślną.
Modyfikując parametry skonfigurowane w plikach konfiguracyjnych NGINX, takich jak nginx.conf i pliki wirtualnego hosta, możesz zhakować NGINX, aby uzyskać najlepszą wydajność.
Dodaj komentarz