Dyrektywa Sendfile w NGINX to zaawansowana funkcja, która znacznie zwiększa wydajność serwera, umożliwiając wydajną obsługę danych, zmniejszając obciążenie serwera i obsługując skalowalne konfiguracje. Wykorzystując tę dyrektywę, NGINX może bezpośrednio przesyłać dane z systemu plików do gniazda sieciowego, omijając przestrzeń użytkownika i minimalizując obciążenie procesora. Skutkuje to szybszym dostarczaniem plików i lepszą ogólną wydajnością, co czyni ją niezbędną optymalizacją w przypadku witryn i aplikacji o dużym natężeniu ruchu.
Poniższy przewodnik pokaże, jak włączyć dyrektywę Sendfile w NGINX przy użyciu poleceń interfejsu wiersza poleceń (CLI) w systemach Linux lub Unix. Wykonując poniższe kroki, możesz mieć pewność, że Twój serwer będzie wydajniej obsługiwał dane, zmniejszał obciążenie i skutecznie skalował się w celu spełnienia wymagań dotyczących wydajności.
Włącz dyrektywę Sendfile w Nginx
Weryfikacja obsługi jądra dla Sendfile
Przed wdrożeniem dyrektywy Nginx Sendfile istotne jest sprawdzenie, czy jądro systemu obsługuje wywołanie systemowe sendfile. Chociaż ta funkcja jest powszechnie dostępna, weryfikacja jest dobrą praktyką.
Wykonaj następujące polecenie, aby sprawdzić obsługę pliku sendfile:
grep SENDFILE /boot/config-$(uname -r)
Pozytywne potwierdzenie wygląda następująco:
CONFIG_SENDFILE=y
Aktywacja Sendfile w NGINX
Aby włączyć funkcję Sendfile, uzyskaj dostęp do pliku konfiguracyjnego NGINX. Ten plik zwykle znajduje się pod adresem /etc/nginx/nginx.conf
.
W tym celu użyj edytora tekstu wiersza poleceń, takiego jak Nano lub Vim:
sudo nano /etc/nginx/nginx.conf
W bloku HTTP tego pliku poszukaj dyrektywy sendfile. Jeśli go nie ma, dodaj następujący wiersz:
http {
sendfile on;
...
}
Jeśli sendfile
jest wyłączony (wyślij plik wyłączony;), zmień go na on
lub jeśli go brakuje, po prostu dodaj linię.
Po zmodyfikowaniu pliku zapisz zmiany i wyjdź z edytora.
Ponowne uruchomienie NGINX w celu zastosowania zmian
Po konfiguracji konieczne jest sprawdzenie konfiguracji NGINX pod kątem ewentualnych błędów. Użyj tego polecenia, aby przetestować konfigurację:
sudo nginx -t
Oczekiwany wynik powinien potwierdzić pomyślną walidację:
nginx: configuration file /etc/nginx/nginx.conf test is successful
Aby zastosować zmiany, zrestartuj serwer NGINX. W zależności od systemu użyj jednego z następujących poleceń:
sudo systemctl restart nginx
Lub
sudo service nginx restart
Wniosek
Na tym kończy się nasz przewodnik dotyczący optymalizacji serwera NGINX za pomocą dyrektywy Sendfile. Omówiliśmy, jak sprawdzić, czy Twój system obsługuje Sendfile, włączyć ją w konfiguracji NGINX i zapewnić prawidłowe działanie po ponownym uruchomieniu serwera. Wdrożenie tej regulacji może znacznie zwiększyć wydajność serwera w obsłudze plików statycznych. Ostateczną rekomendacją jest regularne monitorowanie wydajności serwera po wprowadzeniu tych zmian. Nawet drobne zmiany mogą skutkować znaczną poprawą.