Jak wyłączyć przekroczenie limitu czasu połączenia LiteSpeed?
2024-06-11

Jak wyłączyć przekroczenie limitu czasu połączenia LiteSpeed?

Wyłączenie przekroczenia limitu czasu połączenia LiteSpeed przekłada się na płynność działania strony oraz ogólne doświadczenia użytkowników. Najprostszą metodą jest modyfikacja kodu pliku .htaccess, niemniej w niniejszym wpisie przedstawiamy także inne możliwości.

Przekroczenie limitu czasu połączenia z serwerem LiteSpeed przekłada się na jego obciążenie, a w konsekwencji spadek wydajności, awarie, błędy i przekroczenie limitów zasobów. Jest to więc temat na tyle istotny, że poświęciliśmy mu cały artykuł. Po zapoznaniu się z nim można zyskać wiedzę na takie tematy jak:

  • Limity serwera LiteSpeed
  • Sposoby obejścia limitu czasu połączenia LiteSpeed
  • Wyłączenie limitu czasu połączenia w pliku .htaccess
  • Czas wykonania PHP w pliku php.ini

Zapraszamy do lektury!

Serwer LiteSpeed i jego limity

Zasada jest prosta, im lepszy serwer tym strona internetowa płynniej działa. Najlepszą aktualnie opcją jest wysokowydajny serwer LiteSpeed, który jest stabilny i przekłada się na szybkie ładowanie stron. Warto zadbać również o jego higienę i wyłączyć m.in. przekroczenia limitu czasu połączenia.

Dlaczego należy uruchamiać skrypty bez limitów czasu?

Wyłączanie przekroczenia limitu czasu połączenia z serwerem LiteSpeed ma olbrzymie znaczenie dla działania strony. Dlaczego? Otóż standardowo skrypt ładuje się 30 sekund. Po tym czasie zostaje on przerwany, a jego zawartość się nie wczytuje. Rozwiązaniem jest modyfikacja tego parametru.

Globalne wyłączenie przerywania połączenia

Przerywanie zerwanego połączenia zapobiega marnowaniu zasobów systemowych oraz pozwala uniknąć ataków typu DoS. Kluczowe jest, aby serwer zapewniał nieustanną pracę PHP.

Można to zrobić za pośrednictwem globalnego wyłączenia połączenia, poprzez wybranie opcji „Nie przerywaj” w ścieżce administratora:

Konsola WebAdmin > Konfiguracja > Serwer > Ogólne > Przerwanie aplikacji zewnętrznej

A także poprzez wyłączenie zmiennej środowiskowej „noabort”. Zgodnie z regułą przepisywania lub dyrektyw SetEnv/SetEnvIf w pliku konfiguracyjnym na poziomie vhosta, Apache lub .htaccess.

Uwaga! W celu uniknięcia różnych problemów, należy pamiętać, że regułę „noabort” trzeba umieścić na górze pliku .htaccess.

Wyłączenie limitu czasu połączenia w .htaccess

Najprostszą drogą, jeśli celem jest wyłączenie limitów czasu połączenia, jest modyfikacja pliku .htaccess poprzez dodanie: RewriteRule .* – [E=noconntimeout:1]

<IfModule Litespeed>
RewriteEngine On
RewriteRule .* - [E=noconntimeout:1]
</IfModule>

lub

# # BEGIN litespeed noconntimeout noabort
<IfModule Litespeed>
RewriteEngine On
RewriteRule .* - [E=noabort:1]
</IfModule>
# # END litespeed noconntimeout noabort

Warto pamiętać: Dyrektywa SetEnv dedykowana jest do jednego konta, natomiast SetEnvIf odnosi się do wszystkich kont jednocześnie.

Czas wykonania PHP w pliku php.ini

Innym sposobem na wyłączenie limitu czasu połączenia jest zmiana czasu wykonania PHP w pliku php.ini. Mowa o zmianie max_execution_time, które określa w sekundach jak długo skrypt PHP będzie działał.

W ten sposób serwer nie jest blokowany przez źle napisany skrypt, wyzwalając LSAPI_MAX_PROCESS_TIME nim zostanie wyzwolone ustawienie właśnie max_execution_time, którego domyślne ustawienie wynosi 30 (30 sekund).

Zmiana polega na modyfikacji wartości wyrażanej w sekundach w pliku php.ini, np.:

max_execution_time=36000

Obejście limitu czasu połączenia LiteSpeed

Źle napisane skrypty należy blokować, jednak wadliwy skrypt zamyka kontakt z klientem, na co firma nie może sobie pozwolić.

Wspomniana zmienna środowiskowa „noabort” działa, nawet gdy samo połączenie będzie przerwane, ale musi pozostać otwarte.

Przekroczeniom limitów czasu połączenia można zapobiec, zwiększając w konsoli admina globalne ustawienia limitów:

WebAdmin CP > Konfiguracja > Serwer > Strojenie > Limit czasu połączenia (wyrażany w sekundach)

oraz używając zmiennej środowiskowej „noconntimeout” dla LiteSpeed. Wszystkie polecenia umieszcza się wewnątrz następującej linii kodu:

<IfModule Litespeed>
...
</IfModule>

Reguła: RewriteRule .* – [E=noconntimeout:1] oznacza, że zapis dotyczy wszystkich próśb.

W miejsce .* wprowadza się odpowiednią komendę:

1.

Jeśli chcemy, aby silnik pozostał włączony dla wp-cron.php i backupbuddy.php oraz importbuddy.php musimy wpisać w kod: (wp-cron|backupbuddy|importbuddy)\.php

RewriteRule (wp-cron|backupbuddy|importbuddy)\.php - [E=noconntimeout:1]

2.

A jeśli chcemy poprawnie połączyć to ze zmienną środowiskową „noabort” musimy wprowadzić zapis następujący:

RewriteRule (wp-cron|backupbuddy|importbuddy)\.php - [E=noabort:1, E=noconntimeout:1]

SetEnvIf Request_URI "(wp-cron|backupbuddy|importbuddy)\.php" noconntimeout

3.

Z kolei, jeśli chodzi o dyrektywy SetEnv/SetEnvIf dla wspomnianych adresów URL właściwy zapis prezentuje się w ten sposób:

SetEnvIf Request_URI "(wp-cron|backupbuddy|importbuddy)\.php" noabort noconntimeout

Wyłączenie przekroczenia limitu czasu z wykorzystaniem zmiennej LSAPI_MAX_PROCESS_TIME

Wyłączenie przekroczenia limitu czasu również może mieć miejsce z wykorzystaniem zmiennej LSAPI_MAX_PROCESS_TIME, która odpowiada za kontrolę maksymalnego czasu przetwarzania żądania i jest wyrażana w sekundach – domyślnie 3600. Ścieżka jej zmiany z poziomu administratora jest następująca:

WebAdmin > Konfiguracja > Serwer (lub Vhost) > Aplikacja zewnętrzna > aplikacja zewnętrzna > Środowiska

Potrzebujesz pomocy lub więcej informacji?

Jesteśmy tutaj, aby Ci pomóc! Skontaktuj się z nami, a z przyjemnością odpowiemy na Twoje pytania i udzielimy wsparcia.

    Autor publikacji

    Serwery Dla Ciebie