{"id":21491,"date":"2026-09-17T15:05:11","date_gmt":"2026-09-17T13:05:11","guid":{"rendered":"https:\/\/webhosting.de\/apache-scoreboard-serverauslastung-im-detail-monitoring\/"},"modified":"2026-09-17T15:05:11","modified_gmt":"2026-09-17T13:05:11","slug":"szczegolowe-monitorowanie-obciazenia-serwera-apache-scoreboard","status":"publish","type":"post","link":"https:\/\/webhosting.de\/pl\/apache-scoreboard-serverauslastung-im-detail-monitoring\/","title":{"rendered":"Apache Scoreboard: szczeg\u00f3\u0142owe zrozumienie obci\u0105\u017cenia serwera"},"content":{"rendered":"<p>Apache Scoreboard pokazuje mi w czasie rzeczywistym, ilu pracownik\u00f3w w\u0142a\u015bnie odczytuje zapytania, wysy\u0142a odpowiedzi lub pozostaje w stanie bezczynno\u015bci, a ja wykorzystuj\u0119 te dane do oceny <strong>Wykorzystanie serwera<\/strong> bez zgadywania. Dzi\u0119ki mod_status uzyskuj\u0119 uporz\u0105dkowany dost\u0119p do danych o stanie, interpretuj\u0119 symbole, mierz\u0119 przepustowo\u015b\u0107 i na tej podstawie wyznaczam konkretne <strong>Etapy tuningu<\/strong> od.<\/p>\n\n<h2>Punkty centralne<\/h2>\n\n<ul>\n  <li><strong>Stan w czasie rzeczywistym<\/strong> zrozumie\u0107 wszystkich pracownik\u00f3w i szybko rozpozna\u0107 w\u0105skie gard\u0142a.<\/li>\n  <li><strong>mod_status<\/strong> Zapewnij bezpiecze\u0144stwo i efektywnie wykorzystuj ExtendedStatus.<\/li>\n  <li><strong>Kluczowe dane<\/strong> jak systematycznie analizowa\u0107 wska\u017aniki takie jak Req\/s, Busy\/Idle i CPU.<\/li>\n  <li><strong>Symbole<\/strong> interpretowa\u0107 dane z tablicy wynik\u00f3w i podejmowa\u0107 ukierunkowane dzia\u0142ania.<\/li>\n  <li><strong>Monitoring<\/strong> zautomatyzowa\u0107 i konfigurowa\u0107 alarmy w oparciu o dane.<\/li>\n<\/ul>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/apache-serverraum-8371.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Czym jest Apache Scoreboard?<\/h2>\n\n<p>W Scoreboardzie Apache zapisuje dla ka\u017cdego pracownika aktualny status, taki jak \u201eOdczyt\u201d, \u201eWysy\u0142anie\u201d lub \u201eBezczynno\u015b\u0107\u201d, dzi\u0119ki czemu widz\u0119 <strong>Podzia\u0142 obowi\u0105zk\u00f3w<\/strong> proces\u00f3w. Dane s\u0105 dost\u0119pne wewn\u0119trznie i trafiaj\u0105 do interfejsu u\u017cytkownika za po\u015brednictwem mod_status, w formacie HTML lub w trybie nadaj\u0105cym si\u0119 do odczytu maszynowego. Sprawdzam tam liczb\u0119 zaj\u0119tych i bezczynnych proces\u00f3w, obci\u0105\u017cenie procesora, czas dzia\u0142ania, a tak\u017ce liczb\u0119 dost\u0119p\u00f3w i ilo\u015b\u0107 bajt\u00f3w. Za szczeg\u00f3lnie pomocny uwa\u017cam szczeg\u00f3\u0142owy wgl\u0105d w poszczeg\u00f3lne procesy robocze, poniewa\u017c pozwala mi to rozpozna\u0107 czas przetwarzania i aktywny host. W ten spos\u00f3b mog\u0119 podj\u0105\u0107 uzasadnion\u0105 decyzj\u0119, czy brakuje wydajno\u015bci, czy \u017c\u0105dania trwaj\u0105 zbyt d\u0142ugo, czy te\u017c sloty Keep-Alive s\u0105 zablokowane; te <strong>Przejrzysto\u015b\u0107<\/strong> oszcz\u0119dza czas przy analizie przyczyn.<\/p>\n\n<h2>W ten spos\u00f3b uzyskuj\u0119 dost\u0119p za pomoc\u0105 mod_status<\/h2>\n\n<p>Za pomoc\u0105 adresu \/server-status otwieram przejrzyst\u0105 stron\u0119 HTML; za pomoc\u0105 adresu \/server-status?auto otrzymuj\u0119 zwi\u0119z\u0142y wynik tekstowy dla <strong>Monitoring<\/strong> oraz skrypty. W \u015brodowiskach produkcyjnych w\u0142\u0105czam ExtendedStatus, poniewa\u017c dodatkowe wska\u017aniki dla ka\u017cdego pracownika dostarczaj\u0105 mi niezb\u0119dnego kontekstu. Dost\u0119p ograniczam \u015bci\u015ble do sieci administracyjnych lub poszczeg\u00f3lnych host\u00f3w i nie udost\u0119pniam strony publicznie. Do r\u0119cznego przegl\u0105du wystarczy kr\u00f3tka sesja w przegl\u0105darce, natomiast w przypadku ci\u0105g\u0142ego monitorowania integruj\u0119 widok automatyczny z systemem monitorowania. W ten spos\u00f3b ograniczam obci\u0105\u017cenie i zapewniam <strong>dane statusowe<\/strong> w spos\u00f3b sensowny.<\/p>\n\n<h2>Ocena bezpiecznej konfiguracji i obci\u0105\u017cenia systemowego<\/h2>\n\n<p>Konsekwentnie chroni\u0119 \/server-status i w zale\u017cno\u015bci od sytuacji wybieram mi\u0119dzy zezwoleniem na adres IP, uwierzytelnieniem a wewn\u0119trznym serwerem wirtualnym administratora. ExtendedStatus powoduje mierzalne, ale w praktyce niewielkie <strong>Nad g\u0142ow\u0105<\/strong>; w\u0142\u0105czam go na sta\u0142e, je\u015bli korzystam z tych danych r\u00f3wnie\u017c w monitoringu, albo tylko tymczasowo w przypadku analiz ad hoc. Przejrzysta przyk\u0142adowa konfiguracja pomaga mi unikn\u0105\u0107 b\u0142\u0119d\u00f3w:<\/p>\n\n<pre><code>W\u0142\u0105cz #\nExtendedStatus On\n\nUdost\u0119pnij status # wy\u0142\u0105cznie wewn\u0119trznie\n\n  SetHandler server-status\n\n  # Wariant 1: na podstawie adresu IP\n  Require ip 10.0.0.0\/8 192.168.0.0\/16 ::1\n\n  # Wariant 2: uwierzytelnianie podstawowe (np. dodatkowo do adresu IP)\n  #AuthType Basic\n  #AuthName \"Server Status\"\n  #AuthUserFile \"\/etc\/httpd\/conf\/.htpasswd\"\n  #Require valid-user\n<\/code><\/pre>\n\n<p>Umo\u017cliwiam dost\u0119p do strony r\u00f3wnie\u017c poza wirtualnymi hostami produkcyjnymi (np. poprzez adres wewn\u0119trzny), aby \u017cadne regu\u0142y przepisywania ani trasy proxy nie zak\u0142\u00f3ca\u0142y dzia\u0142ania. Po zako\u0144czeniu fazy debugowania sprawdzam, czy publikowane s\u0105 wy\u0142\u0105cznie niezb\u0119dne informacje.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/apache_serveranalyse_6874.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Szybkie rozpoznawanie symboli na tablicy wynik\u00f3w<\/h2>\n\n<p>W razie zak\u0142\u00f3ce\u0144 najpierw zwracam uwag\u0119 na symbole, poniewa\u017c g\u0119sty wz\u00f3r liter R i W wskazuje na obci\u0105\u017cenie, a du\u017ca liczba znak\u00f3w _ sygnalizuje spok\u00f3j; te <strong>Kodowanie<\/strong> przyspiesza diagnoz\u0119. R\u00f3wnie\u017c litera K pokazuje mi otwarte po\u0142\u0105czenia Keep-Alive, kt\u00f3re w przypadku nieodpowiedniego limitu czasu blokuj\u0105 dzia\u0142anie worker\u00f3w. Skupienie si\u0119 na literze D wskazuje na operacje wyszukiwania DNS, kt\u00f3re op\u00f3\u017aniaj\u0105 odpowiedzi. Cz\u0119ste wpisy z liter\u0105 L wskazuj\u0105 na blokuj\u0105ce procesy rejestrowania i podsystemy pami\u0119ci. Dzi\u0119ki temu jednym spojrzeniem rozpoznaj\u0119 dominuj\u0105ce w\u0105skie gard\u0142o i rozpoczynam ukierunkowane <strong>\u015arodki<\/strong>.<\/p>\n\n<table>\n  <thead>\n    <tr>\n      <th>Symbol<\/th>\n      <th>Znaczenie<\/th>\n      <th>Natychmiastowa informacja<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td>_<\/td>\n      <td>Pracownik bezczynny<\/td>\n      <td>Wystarczaj\u0105ce <strong>Pojemno\u015b\u0107<\/strong> dost\u0119pne<\/td>\n    <\/tr>\n    <tr>\n      <td>R<\/td>\n      <td>Pro\u015bba o przeczytanie<\/td>\n      <td>Sprawd\u017a op\u00f3\u017anienie sieciowe lub <strong>Klient<\/strong><\/td>\n    <\/tr>\n    <tr>\n      <td>W<\/td>\n      <td>Wysy\u0142anie odpowiedzi<\/td>\n      <td>Czas dzia\u0142ania backendu i rozmiar danych wyj\u015bciowych <strong>analizowa\u0107<\/strong><\/td>\n    <\/tr>\n    <tr>\n      <td>K<\/td>\n      <td>Keep-Alive<\/td>\n      <td>Przerwy i przypisanie slot\u00f3w <strong>sprawdzi\u0107<\/strong><\/td>\n    <\/tr>\n    <tr>\n      <td>D<\/td>\n      <td>Wyszukiwanie DNS<\/td>\n      <td>Wy\u0142\u0105czy\u0107 odwrotne DNS lub <strong>pami\u0119\u0107 podr\u0119czna<\/strong><\/td>\n    <\/tr>\n    <tr>\n      <td>L<\/td>\n      <td>Rejestrowanie<\/td>\n      <td>Rejestrowanie asynchroniczne oraz <strong>I\/O<\/strong> czek<\/td>\n    <\/tr>\n    <tr>\n      <td>C<\/td>\n      <td>Zako\u0144czenie<\/td>\n      <td>Normalne zako\u0144czenie po\u0142\u0105czenia, <strong>kr\u00f3tki<\/strong> widoczny<\/td>\n    <\/tr>\n    <tr>\n      <td>G<\/td>\n      <td>Eleganckie wyko\u0144czenie<\/td>\n      <td>Zako\u0144czone zapytanie, proces roboczy <strong>sprz\u0105ta<\/strong> na stronie<\/td>\n    <\/tr>\n    <tr>\n      <td>I<\/td>\n      <td>Czyszczenie w stanie bezczynno\u015bci<\/td>\n      <td>Bezkrytyczny, pracownik <strong>skorygowane<\/strong><\/td>\n    <\/tr>\n    <tr>\n      <td>.<\/td>\n      <td>Bezczynny<\/td>\n      <td>Okres spokoju, zasoby <strong>darmowy<\/strong><\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<h2>Wykrywanie zaawansowanych wzorc\u00f3w i profili atak\u00f3w<\/h2>\n\n<p>Oceniam nie tylko poszczeg\u00f3lne stany, ale tak\u017ce <strong>Czas trwania<\/strong> oraz rozk\u0142ad symboli. Du\u017ca liczba d\u0142ugotrwa\u0142ych stan\u00f3w R przy jednocze\u015bnie niskiej przepustowo\u015bci sieci wskazuje na powolne klienty lub wzorce Slowloris; w takim przypadku ograniczam czas odczytu na \u017c\u0105danie (np. za pomoc\u0105 RequestReadTimeout) i ustalam realistyczne minimalne szybko\u015bci. Je\u015bli przewa\u017caj\u0105 stany typu W z du\u017c\u0105 liczb\u0105 bajt\u00f3w na \u017c\u0105danie, to raczej przepustowo\u015b\u0107 lub pami\u0119\u0107 masowa stanowi\u0105 ograniczenie. Wyst\u0119powanie jednocze\u015bnie stan\u00f3w typu D i L sprawia, \u017ce nadaj\u0119 priorytet rozpoznawaniu nazw i operacjom wej\u015bcia\/wyj\u015bcia dziennik\u00f3w. Decyduj\u0105ce znaczenie ma to, czy wzorce <strong>szeroki<\/strong> (wszyscy pracownicy) lub <strong>lokalny<\/strong> (tylko jeden VHost lub \u015bcie\u017cka) \u2013 dzi\u0119ki temu szybciej znajduj\u0119 punkty newralgiczne w aplikacji.<\/p>\n\n<h2>Wska\u017aniki s\u0142u\u017c\u0105ce do analizy serwer\u00f3w internetowych<\/h2>\n\n<p>Liczba \u017c\u0105da\u0144 na sekund\u0119 pokazuje mi przepustowo\u015b\u0107, ale r\u00f3wnolegle analizuj\u0119 liczb\u0119 bajt\u00f3w na sekund\u0119 oraz liczb\u0119 bajt\u00f3w na \u017c\u0105danie dla <strong>\u0142adowno\u015b\u0107<\/strong>. Stosunek czasu zaj\u0119to\u015bci do czasu bezczynno\u015bci wskazuje, czy brakuje slot\u00f3w, czy te\u017c ustawienia s\u0105 zbyt konserwatywne. Koreluj\u0119 obci\u0105\u017cenie procesora z czasami odpowiedzi, aby odr\u00f3\u017cni\u0107 obci\u0105\u017cenia zwi\u0105zane z procesorem od obci\u0105\u017ce\u0144 zwi\u0105zanych z operacjami wej\u015bcia\/wyj\u015bcia. Czas dzia\u0142ania pomaga odr\u00f3\u017cni\u0107 \u015bwie\u017ce restarty od rzeczywistych trend\u00f3w. Na podstawie tej kombinacji wyznaczam konkretne d\u017awignie optymalizacyjne dla worker\u00f3w, keep-alive i <strong>Limity czasu<\/strong> od.<\/p>\n\n<h2>Warto\u015bci graniczne i sygnalizacja alarmowa w praktyce<\/h2>\n\n<p>Nie ustawiam alarm\u00f3w na podstawie warto\u015bci chwilowych, lecz na podstawie \u015brednich krocz\u0105cych i <strong>Czas trwania<\/strong>. Sprawdzi\u0142y si\u0119 np. nast\u0119puj\u0105ce heurystyki: Idle  4:1 w tym samym okresie wskazuje na nasycenie. Warto\u015b\u0107 Req\/s spada przy sta\u0142ym nat\u0119\u017ceniu ruchu, podczas gdy wska\u017anik Busy pozostaje na sta\u0142ym poziomie \u2013 cz\u0119sto oznacza to problem po stronie backendu. Udzia\u0142 K &gt; 50 % w godzinach szczytu wskazuje na zbyt hojne ustawienia Keep-Alive. Dodaj\u0119 progi dotycz\u0105ce alarm\u00f3w trendowych (rosn\u0105ce czasy odpowiedzi przy niezmiennym obci\u0105\u017ceniu) oraz <strong>Sezonowo\u015b\u0107<\/strong> (wzorce dzienne i tygodniowe), abym m\u00f3g\u0142 odr\u00f3\u017cni\u0107 rzeczywiste zmiany od normalnego zachowania.<\/p>\n\n<h2>Prawid\u0142owe sklasyfikowanie pliku ScoreboardFile<\/h2>\n\n<p>Na niekt\u00f3rych platformach Apache zapisuje dane o stanie w pliku Scoreboard, a ja umieszczam go w szybkim, zabezpieczonym katalogu, takim jak \/var\/run\/httpd; zwi\u0119ksza to <strong>niezawodno\u015b\u0107<\/strong>. Zapobiegam sytuacji, w kt\u00f3rej wiele instancji korzysta z tego samego pliku, poniewa\u017c grozi to zafa\u0142szowaniem warto\u015bci. Niekt\u00f3re narz\u0119dzia odczytuj\u0105 dane bezpo\u015brednio z pliku, co sprawia, \u017ce punkt ko\u0144cowy HTTP staje si\u0119 zb\u0119dny. Jest to korzystne z punktu widzenia bezpiecze\u0144stwa i wydajno\u015bci, o ile uprawnienia s\u0105 odpowiednio skonfigurowane. Dokumentuj\u0119 \u015bcie\u017ck\u0119 i dost\u0119p, aby u\u0142atwi\u0107 konserwacj\u0119 i <strong>Monitoring<\/strong> zachowa\u0107 sp\u00f3jno\u015b\u0107.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/apache-serverauslastung-detail-4893.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Specyfika system\u00f3w operacyjnych i kontener\u00f3w<\/h2>\n\n<p>Dbam o to, aby limity deskryptor\u00f3w plik\u00f3w, zaleg\u0142o\u015bci i \u015bcie\u017cki tymczasowe by\u0142y dostosowane do obci\u0105\u017cenia. W systemd sprawdzam, czy PrivateTmp lub ReadOnlyPaths maj\u0105 wp\u0142yw na \u015bcie\u017ck\u0119 Scoreboard. W kontenerach ostro\u017cnie planuj\u0119 zapotrzebowanie na pami\u0119\u0107 dla ka\u017cdego procesu\/w\u0105tku i umieszczam \u015bcie\u017ck\u0119 Scoreboard w katalogu z prawem do zapisu <strong>Katalog uruchomieniowy<\/strong>. W przypadku obci\u0105\u017cenia szczytowego dostosowuj\u0119 parametry j\u0105dra:<\/p>\n\n<pre><code># Przyk\u0142adowe warto\u015bci sysctl (nale\u017cy przetestowa\u0107 i udokumentowa\u0107 w ca\u0142ym systemie)\nnet.core.somaxconn = 4096\nnet.ipv4.tcp_max_syn_backlog = 4096\nfs.file-max = 1048576\n<\/code><\/pre>\n\n<p>Ponadto dostosowuj\u0119 parametr `ulimit -n` dla us\u0142ugi Apache tak, aby maksymalna <strong>jednoczesno\u015b\u0107<\/strong> pasuje (zasada og\u00f3lna: liczba otwartych FD \u2248 2\u20133 \u00d7 MaxRequestWorkers w konfiguracjach opartych g\u0142\u00f3wnie na serwerach proxy). Po wprowadzeniu zmian ponownie sprawdzam tablic\u0119 wynik\u00f3w, aby potwierdzi\u0107 efekty.<\/p>\n\n<h2>Typowe zastosowania: wykrywanie przeci\u0105\u017conych pracownik\u00f3w<\/h2>\n\n<p>Je\u015bli prawie wszystkie sloty s\u0105 zaj\u0119te przez R lub W i prawie nie pojawiaj\u0105 si\u0119 wpisy _\u2011, serwer osi\u0105ga swoje <strong>Limit<\/strong>. Nast\u0119pnie sprawdzam ustawienie `MaxRequestWorkers`, czasy odpowiedzi oraz blokuj\u0105ce procesy backendowe. Je\u015bli dodanie dodatkowych proces\u00f3w roboczych nie pomaga, w\u0105skie gard\u0142o cz\u0119sto tkwi w aplikacji, bazie danych lub pami\u0119ci masowej. Za pomoc\u0105 \/server-status?auto \u015bledz\u0119 zmiany w okre\u015blonych odst\u0119pach czasu, zamiast ogranicza\u0107 si\u0119 do pojedynczych migawek. W ten spos\u00f3b decyduj\u0119, czy dostosowa\u0107 ustawienia, wzmocni\u0107 buforowanie, czy <strong>Skalowanie<\/strong> planowa\u0107.<\/p>\n\n<h2>Model zasob\u00f3w i wzory dotycz\u0105ce zdolno\u015bci produkcyjnej<\/h2>\n\n<p>Z g\u00f3ry obliczam wymagane zasoby, aby nie dopu\u015bci\u0107 do niedobor\u00f3w pami\u0119ci. W przypadku modelu Prefork obowi\u0105zuje wz\u00f3r: pami\u0119\u0107 \u2248 liczba proces\u00f3w \u00d7 RSS na proces. W przypadku modelu Worker\/Event: pami\u0119\u0107 \u2248 liczba proces\u00f3w \u00d7 (RSS na proces) + liczba w\u0105tk\u00f3w \u00d7 obci\u0105\u017cenie zwi\u0105zane z w\u0105tkiem. Mierz\u0119 rzeczywist\u0105 warto\u015b\u0107 RSS za pomoc\u0105 narz\u0119dzi systemowych i zachowuj\u0119 marginesy bezpiecze\u0144stwa. Ma\u0142y przyk\u0142ad: 20 proces\u00f3w \u00d7 50 MB + 500 w\u0105tk\u00f3w \u00d7 1 MB daje \u2248 1,5 GB, plus pami\u0119\u0107 podr\u0119czna i bufory systemu operacyjnego. Na tej podstawie wyznaczam warto\u015bci MaxRequestWorkers, ServerLimit i ThreadsPerChild. Bior\u0119 r\u00f3wnie\u017c pod uwag\u0119, \u017ce modu\u0142y takie jak SSL, PHP czy reverse-proxying zwi\u0119kszaj\u0105 zu\u017cycie pami\u0119ci o <strong>W\u0105tek<\/strong> mog\u0105 si\u0119 zwi\u0119kszy\u0107; dlatego przeprowadzam testy przy rzeczywistym obci\u0105\u017ceniu, a nie tylko na biegu ja\u0142owym.<\/p>\n\n<h2>Interpretacja kolejek i op\u00f3\u017anie\u0144<\/h2>\n\n<p>Je\u015bli zapytania pozostaj\u0105 przez d\u0142u\u017cszy czas w stanie \u201eAccept\u201d lub \u201eWrite\u201d, wzrasta odczuwalne op\u00f3\u017anienie, a ja analizuj\u0119 d\u0142ugo\u015bci kolejek oraz zaleg\u0142o\u015bci w stanie \u201eAccept\u201d; tablica wynik\u00f3w dostarcza w tym zakresie cennych <strong>Wska\u017aniki<\/strong>. Bardziej szczeg\u00f3\u0142owe wyja\u015bnienie dotycz\u0105ce kolejek, op\u00f3\u017anie\u0144 i obs\u0142ugi \u017c\u0105da\u0144 znajduj\u0119 w tym artykule: <a href=\"https:\/\/webhosting.de\/pl\/serwer-www-kolejkowanie-opoznienie-obsluga-zadan-kolejka-serwera\/\">Kolejki i op\u00f3\u017anienia<\/a>. Na tej podstawie oceniam, czy w\u0105skie gard\u0142a powstaj\u0105 przed serwerem Apache, w samym serwerze Apache czy za nim. Kr\u00f3tkie skoki obci\u0105\u017cenia akceptuj\u0119, ale d\u0142ugotrwa\u0142e zatory eliminuj\u0119 poprzez zwi\u0119kszenie przepustowo\u015bci lub modyfikacj\u0119 architektury. W ten spos\u00f3b zapobiegam eskalacji przekrocze\u0144 limit\u00f3w czasu i klientom <strong>przerwa\u0107<\/strong>.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/apache_scoreboard_office1234.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Nawi\u0105zanie po\u0142\u0105czenia z backendem i serwerem proxy<\/h2>\n\n<p>W \u015brodowiskach opartych na proxy na podstawie faz W ustalam, czy workerzy s\u0105 w <strong>Strumienie w g\u00f3r\u0119<\/strong> Czekam. ExtendedStatus pokazuje mi VHost i \u017c\u0105dany zas\u00f3b; na tej podstawie kojarz\u0119 \u015bcie\u017cki z powolnymi serwerami zaplecza. Ustawiam realistyczne limity czasu (TimeOut, ProxyTimeout) i sprawdzam pul\u0119 po\u0142\u0105cze\u0144, aby w\u0105tki nie blokowa\u0142y si\u0119 niepotrzebnie. Je\u015bli w potoku przesy\u0142ania plik\u00f3w powstaj\u0105 zatory, reguluj\u0119 szybko\u015b\u0107 odczytu na klienta i zabezpieczam si\u0119 przed wolnymi nadawcami. Je\u015bli generowanych jest wiele du\u017cych odpowiedzi, stosuj\u0119 kompresj\u0119, chunking i <strong>Buforowanie<\/strong> w celu skr\u00f3cenia okres\u00f3w W.<\/p>\n\n<h2>Precyzyjna konfiguracja funkcji Keep-Alive<\/h2>\n\n<p>Wiele wpis\u00f3w typu \u201eK\u201d wskazuje na klient\u00f3w, kt\u00f3rzy pozostawiaj\u0105 otwarte po\u0142\u0105czenia; przyspiesza to kolejne \u017c\u0105dania, ale mo\u017ce powodowa\u0107 wyczerpanie slot\u00f3w <strong>wi\u0105zanie<\/strong>. Ustawiam limity czasu tak, aby korzysta\u0142y na tym prawdziwe powt\u00f3rzenia, a jednocze\u015bnie nie blokowa\u0142y zbyt d\u0142ugo bezczynno\u015bci. Na stronach o du\u017cym nat\u0119\u017ceniu ruchu pomaga mi serwer proxy umieszczony przed serwerem, kt\u00f3ry efektywnie grupuje po\u0142\u0105czenia Keep-Alive. Aby uzyska\u0107 szczeg\u00f3\u0142owe informacje na temat precyzyjnego dostosowywania ustawie\u0144, korzystam z tego przewodnika: <a href=\"https:\/\/webhosting.de\/pl\/optymalne-ustawienie-limitu-czasu-keepalive-w-apache-z-naciskiem-na-wydajnosc\/\">Ustawianie limitu czasu Keep-Alive<\/a>. Dzi\u0119ki odpowiedniemu czasowi oczekiwania zmniejsza si\u0119 obci\u0105\u017cenie gniazd, a serwer pozostaje sprawny pod obci\u0105\u017ceniem <strong>responsywny<\/strong>.<\/p>\n\n<h2>Wsp\u00f3\u0142praca protoko\u0142\u00f3w HTTP\/2, TLS i MPM<\/h2>\n\n<p>W przypadku protoko\u0142u HTTP\/2 zazwyczaj obserwuj\u0119 mniejsze wykorzystanie \u0142\u0105cza na klienta, poniewa\u017c wiele strumieni korzysta z jednego po\u0142\u0105czenia <strong>udost\u0119pni\u0107<\/strong>. Event-MPM wykazuje tutaj swoje mocne strony: obs\u0142uga Keep-Alive jest bardziej wydajna, a aktywna praca pozostaje w gestii w\u0105tk\u00f3w. TLS zwi\u0119ksza zapotrzebowanie na moc procesora na jedno po\u0142\u0105czenie; obserwuj\u0119, czy wysoki udzia\u0142 W koreluje z wysokim obci\u0105\u017ceniem procesora, i optymalizuj\u0119 zestawy szyfr\u00f3w oraz wznawianie sesji. W widokach stanu rozpoznaj\u0119 dla ka\u017cdego VHost, czy dominuj\u0105 \u015bcie\u017cki HTTP\/2 czy terminacji TLS, i odpowiednio dostosowuj\u0119 zasoby (np. wi\u0119cej w\u0105tk\u00f3w zamiast wi\u0119kszej liczby proces\u00f3w, je\u015bli zmiany kontekstu s\u0105 kosztowne).<\/p>\n\n<h2>Pe\u0142na kontrola nad wyszukiwaniem adres\u00f3w DNS i rejestrowaniem danych<\/h2>\n\n<p>Je\u015bli litera \u201eD\u201d pojawia si\u0119 cz\u0119sto w tabeli wynik\u00f3w, sprawdzam odwrotne DNS i w\u0142\u0105czam lokaln\u0105 pami\u0119\u0107 podr\u0119czn\u0105 lub wy\u0142\u0105czam wyszukiwanie; to zmniejsza <strong>Op\u00f3\u017anienie<\/strong>. Je\u015bli widz\u0119 du\u017co wpis\u00f3w typu L, rejestrowanie spowalnia przetwarzanie, wi\u0119c rozdzielam pliki log\u00f3w, korzystam z szybszej pami\u0119ci masowej lub asynchronicznych potok\u00f3w. Rotuj\u0105ce logi konfiguruj\u0119 tak, aby nie dochodzi\u0142o do szczyt\u00f3w obci\u0105\u017cenia podczas opr\u00f3\u017cniania. R\u00f3wnolegle mierz\u0119 operacje wej\u015bcia\/wyj\u015bcia zapisu oraz blokady plik\u00f3w, aby wyeliminowa\u0107 wzorce blokuj\u0105ce. W ten spos\u00f3b odzyskuj\u0119 czas przetwarzania i odci\u0105\u017cam <strong>Pracownik<\/strong>.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/apache_scoreboard_server_auslastung_4738.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Integracja z systemami monitorowania<\/h2>\n\n<p>Okresowo pobieram dane z \/server-status?auto, zapisuj\u0119 je jako szereg czasowy i wizualizuj\u0119 wska\u017aniki \u201eBusy vs Idle\u201d, Req\/s, Bytes\/s oraz obci\u0105\u017cenie procesora na <strong>Pulpity nawigacyjne<\/strong>. Alarmy definiuj\u0105 warto\u015bci progowe dla stale zape\u0142nionych slot\u00f3w, rosn\u0105cych czas\u00f3w odpowiedzi lub nietypowych wzorc\u00f3w ruchu. Za pomoc\u0105 adnotacji oznaczam wdro\u017cenia, dzi\u0119ki czemu od razu widz\u0119 skutki. Ta historia pozwala odr\u00f3\u017cni\u0107 jednorazowe szczyty od prawdziwych trend\u00f3w. W ten spos\u00f3b planowo zarz\u0105dzam wydajno\u015bci\u0105 i zapobiegam <strong>Niespodzianki<\/strong>.<\/p>\n\n<h2>Zautomatyzowane gromadzenie danych za pomoc\u0105 skrypt\u00f3w<\/h2>\n\n<p>Do szybkich sprawdze\u0144 wystarcza mi lekki skrypt, kt\u00f3ry analizuje widok \u201eAuto\u201d i wy\u015bwietla tylko kluczowe dane. Ustalam umiarkowane interwa\u0142y zapyta\u0144 (np. 10\u201330 sekund), aby ograniczy\u0107 obci\u0105\u017cenie systemu, a ka\u017cd\u0105 pr\u00f3bk\u0119 oznaczam tagami host, VHost i \u015brodowisko.<\/p>\n\n<pre><code>#!\/bin\/sh\nURL=\"http:\/\/127.0.0.1\/server-status?auto\"\ncurl -s \"$URL\" | awk -F': ' '\n  \/BusyWorkers\/ {busy=$2}\n  \/IdleWorkers\/ {idle=$2}\n  \/ReqPerSec\/   {rps=$2}\n  \/BytesPerSec\/ {bps=$2}\n  END { printf(\"busy=%s idle=%s rps=%.2f bps=%.0f\\n\", busy, idle, rps, bps) }\n'\n<\/code><\/pre>\n\n<p>W wi\u0119kszych \u015brodowiskach dodatkowo agreguj\u0119 czasy wed\u0142ug poszczeg\u00f3lnych pracownik\u00f3w, przypisuj\u0119 je do VHost\u00f3w i obliczam <strong>Kwantyle<\/strong> w odniesieniu do czas\u00f3w odpowiedzi. W ten spos\u00f3b mog\u0119 stwierdzi\u0107, czy problemy dotycz\u0105 tylko cz\u0119\u015bci u\u017cytkownik\u00f3w, czy te\u017c wi\u0119kszo\u015bci z nich.<\/p>\n\n<h2>MPM i planowanie zdolno\u015bci produkcyjnych<\/h2>\n\n<p>MPM okre\u015bla, w jaki spos\u00f3b Apache przetwarza po\u0142\u0105czenia; dane z Scoreboardu pokazuj\u0105 mi, czy czynnikiem ograniczaj\u0105cym s\u0105 procesy, czy w\u0105tki <strong>Czynnik<\/strong> s\u0105. W celu doboru i optymalizacji por\u00f3wnuj\u0119 zdarzenia i procesy robocze, mierz\u0119 czasy bezczynno\u015bci, trwa\u0142o\u015b\u0107 po\u0142\u0105cze\u0144 Keep-Alive oraz zmiany kontekstu. Zwi\u0119z\u0142e por\u00f3wnanie przedstawia ten artyku\u0142: <a href=\"https:\/\/webhosting.de\/pl\/apache-mpm-event-a-mpm-worker-dostrajanie-i-optymalizacja-serwera-www\/\">Zdarzenie a pracownik MPM<\/a>. Po wprowadzeniu zmian ponownie sprawdzam wska\u017aniki zaj\u0119to\u015bci\/bezczynno\u015bci oraz liczb\u0119 \u017c\u0105da\u0144 na sekund\u0119, aby potwierdzi\u0107 efekty. W ten spos\u00f3b podejmuj\u0119 decyzje w oparciu o dane i zwi\u0119kszam <strong>Wydajno\u015b\u0107<\/strong>.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/serverraum-apache-5542.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>P\u0142ynne ponowne uruchomienie, wdra\u017canie stopniowe i konserwacja<\/h2>\n\n<p>W przypadku wdro\u017ce\u0144 lub zmian konfiguracji najcz\u0119\u015bciej uruchamiam <strong>wdzi\u0119czny<\/strong> Wy\u0142\u0105czam restart. Na tablicy wynik\u00f3w widz\u0119 to po wielu stanach G, gdy nowe procesy si\u0119 uruchamiaj\u0105, a stare p\u0142ynnie si\u0119 ko\u0144cz\u0105. Planuj\u0119 zmiany typu \u201erolling\u201d tak, aby pozosta\u0142a wystarczaj\u0105ca pojemno\u015b\u0107 w stanie bezczynno\u015bci: najpierw zmniejszam obci\u0105\u017cenie, potem p\u0142ynnie prze\u0142adowuj\u0119, a na ko\u0144cu pozosta\u0142e w\u0119z\u0142y. D\u0142ugotrwa\u0142e fazy G wskazuj\u0105, \u017ce stare procesy czekaj\u0105 na powolne \u017c\u0105dania \u2013 w\u00f3wczas sprawdzam limity czasu i ustawienia Keep-Alive, aby skr\u00f3ci\u0107 czas prze\u0142\u0105czania.<\/p>\n\n<h2>Krok po kroku ku rzetelnej analizie<\/h2>\n\n<p>W\u0142\u0105czam mod_status, zabezpieczam dost\u0119p i w\u0142\u0105czam ExtendedStatus, aby m\u00f3c wy\u015bwietli\u0107 wszystkie <strong>szczeg\u00f3\u0142y<\/strong> otrzymuj\u0119. Nast\u0119pnie sprawdzam stron\u0119 HTML w przegl\u0105darce i zapoznaj\u0119 si\u0119 z rzeczywistym rozk\u0142adem symboli. W kolejnym kroku w\u0142\u0105czam \/server-status?auto do mojego systemu monitorowania i weryfikuj\u0119 wska\u017aniki. Nast\u0119pnie optymalizuj\u0119 kolejno: liczb\u0119 proces\u00f3w roboczych, Keep-Alive, limity czasu, buforowanie i \u015bcie\u017cki aplikacji. Ka\u017cd\u0105 zmian\u0119 ponownie mierz\u0119, a\u017c Req\/s, czas odpowiedzi oraz wska\u017aniki zaj\u0119to\u015bci\/bezczynno\u015bci ponownie znajd\u0105 si\u0119 w <strong>Teren zielony<\/strong> k\u0142amstwo.<\/p>\n\n<h2>Podsumowanie: Apache Scoreboard jako kompas<\/h2>\n\n<p>Apache Scoreboard zapewnia mi przejrzysty i gotowy do natychmiastowego wykorzystania wgl\u0105d w obci\u0105\u017cenie, w\u0105skie gard\u0142a oraz zachowanie <strong>Pracownik<\/strong>. Dzi\u0119ki mod_status, ExtendedStatus i sprawnemu monitorowaniu przekszta\u0142cam surowe dane w rzetelne decyzje. Symbole i wska\u017aniki pokazuj\u0105, czy powinienem zwi\u0119kszy\u0107 wydajno\u015b\u0107, skr\u00f3ci\u0107 limity czasu, czy te\u017c zaj\u0105\u0107 si\u0119 sam\u0105 aplikacj\u0105. Niewielka zmiana w ustawieniach Keep-Alive lub MPM mo\u017ce przynie\u015b\u0107 ogromne efekty, je\u015bli dane s\u0105 prawid\u0142owe. Kto w\u0142a\u015bciwie odczytuje sygna\u0142y, ten utrzyma Apache'a pod obci\u0105\u017ceniem <strong>responsywny<\/strong> i mo\u017cliwe do zaplanowania.<\/p>","protected":false},"excerpt":{"rendered":"<p>Dowiedz si\u0119, w jaki spos\u00f3b Apache Scoreboard pomaga w analizie serwera WWW: zapoznaj si\u0119 z instrukcj\u0105 konfiguracji mod_status, naucz si\u0119 interpretowa\u0107 ikony Scoreboard oraz wykorzystaj monitorowanie Apache\u2019a do optymalizacji obci\u0105\u017cenia serwera.<\/p>","protected":false},"author":1,"featured_media":21484,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[834],"tags":[],"class_list":["post-21491","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-plesk-webserver-plesk-administration-anleitungen"],"acf":[],"_wp_attached_file":null,"_wp_attachment_metadata":null,"litespeed-optimize-size":null,"litespeed-optimize-set":null,"_elementor_source_image_hash":null,"_wp_attachment_image_alt":null,"stockpack_author_name":null,"stockpack_author_url":null,"stockpack_provider":null,"stockpack_image_url":null,"stockpack_license":null,"stockpack_license_url":null,"stockpack_modification":null,"color":null,"original_id":null,"original_url":null,"original_link":null,"unsplash_location":null,"unsplash_sponsor":null,"unsplash_exif":null,"unsplash_attachment_metadata":null,"_elementor_is_screenshot":null,"surfer_file_name":null,"surfer_file_original_url":null,"envato_tk_source_kit":null,"envato_tk_source_index":null,"envato_tk_manifest":null,"envato_tk_folder_name":null,"envato_tk_builder":null,"envato_elements_download_event":null,"_menu_item_type":null,"_menu_item_menu_item_parent":null,"_menu_item_object_id":null,"_menu_item_object":null,"_menu_item_target":null,"_menu_item_classes":null,"_menu_item_xfn":null,"_menu_item_url":null,"_trp_menu_languages":null,"rank_math_primary_category":null,"rank_math_title":null,"inline_featured_image":null,"_yoast_wpseo_primary_category":null,"rank_math_schema_blogposting":null,"rank_math_schema_videoobject":null,"_oembed_049c719bc4a9f89deaead66a7da9fddc":null,"_oembed_time_049c719bc4a9f89deaead66a7da9fddc":null,"_yoast_wpseo_focuskw":null,"_yoast_wpseo_linkdex":null,"_oembed_27e3473bf8bec795fbeb3a9d38489348":null,"_oembed_c3b0f6959478faf92a1f343d8f96b19e":null,"_trp_translated_slug_en_us":null,"_wp_desired_post_slug":null,"_yoast_wpseo_title":null,"tldname":null,"tldpreis":null,"tldrubrik":null,"tldpolicylink":null,"tldsize":null,"tldregistrierungsdauer":null,"tldtransfer":null,"tldwhoisprivacy":null,"tldregistrarchange":null,"tldregistrantchange":null,"tldwhoisupdate":null,"tldnameserverupdate":null,"tlddeletesofort":null,"tlddeleteexpire":null,"tldumlaute":null,"tldrestore":null,"tldsubcategory":null,"tldbildname":null,"tldbildurl":null,"tldclean":null,"tldcategory":null,"tldpolicy":null,"tldbesonderheiten":null,"tld_bedeutung":null,"_oembed_d167040d816d8f94c072940c8009f5f8":null,"_oembed_b0a0fa59ef14f8870da2c63f2027d064":null,"_oembed_4792fa4dfb2a8f09ab950a73b7f313ba":null,"_oembed_33ceb1fe54a8ab775d9410abf699878d":null,"_oembed_fd7014d14d919b45ec004937c0db9335":null,"_oembed_21a029d076783ec3e8042698c351bd7e":null,"_oembed_be5ea8a0c7b18e658f08cc571a909452":null,"_oembed_a9ca7a298b19f9b48ec5914e010294d2":null,"_oembed_f8db6b27d08a2bb1f920e7647808899a":null,"_oembed_168ebde5096e77d8a89326519af9e022":null,"_oembed_cdb76f1b345b42743edfe25481b6f98f":null,"_oembed_87b0613611ae54e86e8864265404b0a1":null,"_oembed_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_oembed_time_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_tldname":null,"_tldclean":null,"_tldpreis":null,"_tldcategory":null,"_tldsubcategory":null,"_tldpolicy":null,"_tldpolicylink":null,"_tldsize":null,"_tldregistrierungsdauer":null,"_tldtransfer":null,"_tldwhoisprivacy":null,"_tldregistrarchange":null,"_tldregistrantchange":null,"_tldwhoisupdate":null,"_tldnameserverupdate":null,"_tlddeletesofort":null,"_tlddeleteexpire":null,"_tldumlaute":null,"_tldrestore":null,"_tldbildname":null,"_tldbildurl":null,"_tld_bedeutung":null,"_tldbesonderheiten":null,"_oembed_ad96e4112edb9f8ffa35731d4098bc6b":null,"_oembed_8357e2b8a2575c74ed5978f262a10126":null,"_oembed_3d5fea5103dd0d22ec5d6a33eff7f863":null,"_eael_widget_elements":null,"_oembed_0d8a206f09633e3d62b95a15a4dd0487":null,"_oembed_time_0d8a206f09633e3d62b95a15a4dd0487":null,"_aioseo_description":null,"_eb_attr":null,"_eb_data_table":null,"_oembed_819a879e7da16dd629cfd15a97334c8a":null,"_oembed_time_819a879e7da16dd629cfd15a97334c8a":null,"_acf_changed":null,"_wpcode_auto_insert":null,"_edit_last":null,"_edit_lock":null,"_oembed_e7b913c6c84084ed9702cb4feb012ddd":null,"_oembed_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_time_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_03514b67990db061d7c4672de26dc514":null,"_oembed_time_03514b67990db061d7c4672de26dc514":null,"rank_math_news_sitemap_robots":null,"rank_math_robots":null,"_eael_post_view_count":"105","_trp_automatically_translated_slug_ru_ru":null,"_trp_automatically_translated_slug_et":null,"_trp_automatically_translated_slug_lv":null,"_trp_automatically_translated_slug_fr_fr":null,"_trp_automatically_translated_slug_en_us":null,"_wp_old_slug":null,"_trp_automatically_translated_slug_da_dk":null,"_trp_automatically_translated_slug_pl_pl":null,"_trp_automatically_translated_slug_es_es":null,"_trp_automatically_translated_slug_hu_hu":null,"_trp_automatically_translated_slug_fi":null,"_trp_automatically_translated_slug_ja":null,"_trp_automatically_translated_slug_lt_lt":null,"_elementor_edit_mode":null,"_elementor_template_type":null,"_elementor_version":null,"_elementor_pro_version":null,"_wp_page_template":null,"_elementor_page_settings":null,"_elementor_data":null,"_elementor_css":null,"_elementor_conditions":null,"_happyaddons_elements_cache":null,"_oembed_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_time_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_time_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_59808117857ddf57e478a31d79f76e4d":null,"_oembed_time_59808117857ddf57e478a31d79f76e4d":null,"_oembed_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_time_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_81002f7ee3604f645db4ebcfd1912acf":null,"_oembed_time_81002f7ee3604f645db4ebcfd1912acf":null,"_elementor_screenshot":null,"_oembed_7ea3429961cf98fa85da9747683af827":null,"_oembed_time_7ea3429961cf98fa85da9747683af827":null,"_elementor_controls_usage":null,"_elementor_page_assets":[],"_elementor_screenshot_failed":null,"theplus_transient_widgets":null,"_eael_custom_js":null,"_wp_old_date":null,"_trp_automatically_translated_slug_it_it":null,"_trp_automatically_translated_slug_pt_pt":null,"_trp_automatically_translated_slug_zh_cn":null,"_trp_automatically_translated_slug_nl_nl":null,"_trp_automatically_translated_slug_pt_br":null,"_trp_automatically_translated_slug_sv_se":null,"rank_math_analytic_object_id":null,"rank_math_internal_links_processed":"1","_trp_automatically_translated_slug_ro_ro":null,"_trp_automatically_translated_slug_sk_sk":null,"_trp_automatically_translated_slug_bg_bg":null,"_trp_automatically_translated_slug_sl_si":null,"litespeed_vpi_list":null,"litespeed_vpi_list_mobile":null,"rank_math_seo_score":null,"rank_math_contentai_score":null,"ilj_limitincominglinks":null,"ilj_maxincominglinks":null,"ilj_limitoutgoinglinks":null,"ilj_maxoutgoinglinks":null,"ilj_limitlinksperparagraph":null,"ilj_linksperparagraph":null,"ilj_blacklistdefinition":null,"ilj_linkdefinition":null,"_eb_reusable_block_ids":null,"rank_math_focus_keyword":"Apache Scoreboard","rank_math_og_content_image":null,"_yoast_wpseo_metadesc":null,"_yoast_wpseo_content_score":null,"_yoast_wpseo_focuskeywords":null,"_yoast_wpseo_keywordsynonyms":null,"_yoast_wpseo_estimated-reading-time-minutes":null,"rank_math_description":null,"surfer_last_post_update":null,"surfer_last_post_update_direction":null,"surfer_keywords":null,"surfer_location":null,"surfer_draft_id":null,"surfer_permalink_hash":null,"surfer_scrape_ready":null,"_thumbnail_id":"21484","footnotes":null,"_links":{"self":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts\/21491","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/comments?post=21491"}],"version-history":[{"count":0,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts\/21491\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/media\/21484"}],"wp:attachment":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/media?parent=21491"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/categories?post=21491"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/tags?post=21491"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}