Tryb worker
01Trwałe procesy PHP uruchamiają się raz i obsługują tysiące żądań. Superglobalne, bufory i nagłówki są miękko resetowane między żądaniami; autoloadery, kontenery i połączenia z bazą danych są zachowywane.
Model wykonania, dostarczanie przez HTTP, stan współdzielony, obserwowalność i bezpieczeństwo — wbudowane, włączone domyślnie lub oddalone o jedną zmienną środowiskową. Żadnych konfiguracji nginx, żadnych sidecarów, żadnych pluginów do skompilowania.
Trwałe workery, kooperatywne Fibery i prawdziwe wątki w tle — cykl życia żądania kształtujesz według własnych potrzeb.
Trwałe procesy PHP uruchamiają się raz i obsługują tysiące żądań. Superglobalne, bufory i nagłówki są miękko resetowane między żądaniami; autoloadery, kontenery i połączenia z bazą danych są zachowywane.
Każdy worker obsługuje setki współbieżnych żądań dzięki Fiberom z PHP 8.4 — uśpienia i oczekiwania oddają Fiber zamiast blokować wątek.
Wysyłaj domknięcia do dedykowanej puli wątków i oczekuj na wyniki — z kombinatorami all, race i any do równoległego rozgałęziania.
Wyślij odpowiedź do klienta natychmiast, a potem kontynuuj przetwarzanie w tle — kolejkuj zadania, zapisuj logi, rozgrzewaj pamięci podręczne.
Przechwytuj wywołania funkcji i metod za pomocą atrybutów PHP 8 — ponawiaj, buforuj, śledź lub zabezpieczaj bez ingerencji w miejsca wywołań.
Server-Sent Events w czasie rzeczywistym prosto z PHP, z jawną kontrolą opróżniania bufora — bez niespodzianek z buforowaniem po stronie proxy.
Warstwa serwera WWW, którą kiedyś zarządzał nginx — routing, pliki statyczne, TLS, kompresja i ochrona — konfigurowana za pomocą zmiennych środowiskowych.
Tradycyjne mapowanie plików, front-controller frameworka lub fallback SPA — przełącza je jedna zmienna; tryb worker nakłada się na dowolny z nich.
Pamięć podręczna treści w pamięci RAM, automatyczne wykrywanie typu MIME, nagłówki ETag i Last-Modified, strumieniowanie dużych plików.
Odpowiedzi tekstowe kompresowane od razu, bez konfiguracji — jakość regulowana w zakresie 0–11, liczba zaoszczędzonych bajtów udostępniana jako metryka.
Terminacja TLS za pomocą dwóch zmiennych — certyfikat i klucz PEM, minimalna wersja protokołu wymuszana przy starcie.
Limity na adres IP z konfigurowalnymi oknami. Żądania przekraczające limit otrzymują kod 429; pełna kolejka PHP odpowiada przeciwciśnieniem 529.
Limit czasu odczytu nagłówków chroniący przed atakiem Slowloris, limity czasu żądań oraz okno łagodnego opróżniania połączeń przy zamykaniu.
Twój własny kod HTML dla każdego kodu statusu — umieść 404.html lub 503.html w katalogu i wskaż go jedną zmienną.
SIGTERM opróżnia trwające połączenia przed zakończeniem — kroczące wdrożenia bez porzuconych żądań.
Metryki, logi, ślady i profile są wbudowane w serwer — bez eksporterów, bez sidecarów, bez zmian w kodzie.
Dedykowany port wewnętrzny udostępnia metryki żądań, workerów, kolejek, pamięci podręcznej i operacji asynchronicznych — gotowe dla Grafany.
Logi dostępu w formacie JSON z metodą, ścieżką, statusem, czasem trwania i ID żądania w każdej linii — Loki i Elasticsearch parsują je bez zmian.
X-Request-ID generowany lub przekazywany automatycznie, dostępny w PHP i umieszczany w każdej linii logu.
W3C Trace Context, eksport OpenTelemetry, automatyczna instrumentacja PDO, cURL i Redis oraz SDK do śledzenia dla PHP.
Profile dla każdego żądania w formatach xhprof, speedscope, pprof i FlameGraph — wyzwalane przez nagłówek, cookie lub próbkowanie.
Endpointy liveness i readiness oraz migawka bieżącej konfiguracji — sondy Kubernetesa działają od razu, bez konfiguracji.
Rozsądne zabezpieczenia włączone domyślnie oraz listy blokowania na ostre krawędzie starszych aplikacji PHP.
Ukryte pliki i katalogi — .env, .git/, .htaccess — nigdy nie są serwowane. Włączone domyślnie, bez konfiguracji.
Rzeczywisty adres IP klienta z nagłówków Forwarded (RFC 7239) i X-Forwarded-*, z zaufaniem opartym na CIDR i rozstrzyganiem na podstawie skrajnie prawego niezaufanego adresu.
Blokuj wykonywanie plików .php w ścieżkach zapisywalnych, takich jak /uploads/** — ataki polegające na wgraniu shella w starszych aplikacjach kończą się, zanim dojdzie do operacji dyskowych.
Ucieczki przez dowiązania symboliczne poza katalog główny dokumentów są blokowane, chyba że zostaną jawnie dodane do listy dozwolonych — Laravel storage:link nadal działa.
Skopiuj swoją aplikację do obrazu i uruchom ją.
Używamy niezbędnych plików cookie, aby ta strona działała. Za Twoją zgodą wykorzystujemy też pliki cookie preferencji (motyw, język) oraz anonimowe statystyki. Ich odrzucenie nie ograniczy korzystania z witryny. Polityka plików cookie