{"id":20914,"date":"2026-08-23T08:31:43","date_gmt":"2026-08-23T06:31:43","guid":{"rendered":"https:\/\/webhosting.de\/nginx-cache-wordpress-speed\/"},"modified":"2026-08-23T08:31:43","modified_gmt":"2026-08-23T06:31:43","slug":"nginx-pamiec-podreczna-wordpress-szybkosc","status":"publish","type":"post","link":"https:\/\/webhosting.de\/pl\/nginx-cache-wordpress-speed\/","title":{"rendered":"Pami\u0119\u0107 podr\u0119czna FastCGI w NGINX: jak przyspieszy\u0107 dzia\u0142anie WordPressa"},"content":{"rendered":"<p>Znacznie przyspieszam dzia\u0142anie WordPressa poprzez <strong>Pami\u0119\u0107 podr\u0119czna NGINX<\/strong> korzystam z tego na poziomie serwera i bezpo\u015brednio dostarczam odpowiedzi HTML. Dzi\u0119ki temu TTFB znacznie si\u0119 zmniejsza, PHP-FPM pozostaje wolne, a baza danych przetwarza mniej <strong>Zapytania<\/strong>.<\/p>\n\n<h2>Punkty centralne<\/h2>\n<ul>\n  <li><strong>Po stronie serwera<\/strong> Zamiast wtyczki: FastCGI Cache odci\u0105\u017ca PHP i zmniejsza op\u00f3\u017anienia.<\/li>\n  <li><strong>Oczyszczenie<\/strong> w przypadku zmian: tre\u015bci pozostaj\u0105 aktualne i s\u0105 celowo od\u015bwie\u017cane.<\/li>\n  <li><strong>Wy\u0142\u0105czenia<\/strong> Obszary dynamiczne, takie jak logowanie, koszyk i realizacja zam\u00f3wienia, pozostaj\u0105 dynamiczne.<\/li>\n  <li><strong>Skalowanie<\/strong> pod obci\u0105\u017ceniem: pami\u0119ci podr\u0119czne dzia\u0142aj\u0105 cz\u0119\u015bciej i zmniejszaj\u0105 obci\u0105\u017cenie serwera.<\/li>\n  <li><strong>Mierzalne<\/strong> szybciej: warto\u015bci TTFB, RPS i obci\u0105\u017cenia procesora znacznie si\u0119 poprawiaj\u0105.<\/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\/08\/nginx-cache-optimierung-4832.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Jak pami\u0119\u0107 podr\u0119czna FastCGI w NGINX przyspiesza dzia\u0142anie WordPressa<\/h2>\n<p>Przy pierwszym wywo\u0142aniu WordPress renderuje stron\u0119, a nast\u0119pnie NGINX zapisuje gotow\u0105 odpowied\u017a jako <strong>HTML<\/strong> i obs\u0142uguje kolejne identyczne \u017c\u0105dania bez korzystania z PHP-FPM. W ten spos\u00f3b ograniczam obci\u0105\u017cenie procesora i liczb\u0119 zmian kontekstu, podczas gdy system plik\u00f3w lub pami\u0119\u0107 podr\u0119czna systemu operacyjnego zapewniaj\u0105 szybki <strong>Hity<\/strong> zapewnia. Zw\u0142aszcza w okresach szczytowego obci\u0105\u017cenia czas odpowiedzi pozostaje niski, poniewa\u017c nie trzeba uruchamia\u0107 \u017cadnych proces\u00f3w PHP. Dzi\u0119ki temu minimalizuj\u0119 TTFB i umo\u017cliwiam obs\u0142ug\u0119 wi\u0119kszej liczby \u017c\u0105da\u0144 na sekund\u0119. Efektem tego jest p\u0142ynniejsza interakcja, mniej przypadk\u00f3w przekroczenia limitu czasu oraz wyra\u017any zapas wydajno\u015bci dla prawdziwie dynamicznych proces\u00f3w.<\/p>\n\n<h2>Pami\u0119\u0107 podr\u0119czna po stronie serwera a pami\u0119\u0107 podr\u0119czna wtyczki (wraz z por\u00f3wnaniem)<\/h2>\n<p>Wtyczka pami\u0119ci podr\u0119cznej dzia\u0142a w <strong>Stos PHP<\/strong> i cz\u0119sto uruchamia procesy nawet w przypadku trafie\u0144, podczas gdy FastCGI Cache odpowiada bezpo\u015brednio na poziomie serwera WWW. Dzi\u0119ki temu eliminuje si\u0119 wiele obci\u0105\u017ce\u0144, takich jak inicjalizacja PHP i haki wtyczek. W przypadku powracaj\u0105cych u\u017cytkownik\u00f3w stawiam przede wszystkim na rozwi\u0105zanie po stronie serwera i w razie potrzeby \u0142\u0105cz\u0119 je z lekk\u0105 wtyczk\u0105 do optymalizacji interfejsu u\u017cytkownika. Kto chce dok\u0142adnie zapozna\u0107 si\u0119 ze szczeg\u00f3\u0142ami, powinien zacz\u0105\u0107 od uproszczonej <strong>Faza testowa<\/strong> i mierzy osobno TTFB, obci\u0105\u017cenie procesora oraz wsp\u00f3\u0142czynnik trafie\u0144 w pami\u0119ci podr\u0119cznej. R\u00f3\u017cnice staj\u0105 si\u0119 widoczne bardzo szybko \u2013 zw\u0142aszcza pod obci\u0105\u017ceniem.<\/p>\n<table>\n  <thead>\n    <tr>\n      <th>Kryterium<\/th>\n      <th>Pami\u0119\u0107 podr\u0119czna wtyczek (PHP)<\/th>\n      <th>Pami\u0119\u0107 podr\u0119czna FastCGI w NGINX<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td>Spos\u00f3b udzielenia odpowiedzi<\/td>\n      <td>PHP zosta\u0142o zainicjowane, wtyczka sprawdza pami\u0119\u0107 podr\u0119czn\u0105<\/td>\n      <td>Serwer WWW udost\u0119pnia plik bezpo\u015brednio<\/td>\n    <\/tr>\n    <tr>\n      <td>TTFB<\/td>\n      <td>wy\u017cszy dzi\u0119ki uruchomieniu PHP<\/td>\n      <td>bardzo niskie w przypadku trafienia w pami\u0119\u0107 podr\u0119czn\u0105<\/td>\n    <\/tr>\n    <tr>\n      <td>Zasoby<\/td>\n      <td>wi\u0119cej mocy procesora\/pami\u0119ci RAM na ka\u017cde \u017c\u0105danie<\/td>\n      <td>znacznie mniej zasob\u00f3w<\/td>\n    <\/tr>\n    <tr>\n      <td>Skalowanie<\/td>\n      <td>ograniczone przez procesy PHP<\/td>\n      <td>skaluje si\u0119 wydajnie dzi\u0119ki NGINX<\/td>\n    <\/tr>\n    <tr>\n      <td>Zale\u017cno\u015bci<\/td>\n      <td>Mo\u017cliwe konflikty mi\u0119dzy motywami a wtyczkami<\/td>\n      <td>dzia\u0142a w ramach platformy WordPress<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n<p>Dodatkowo stosuj\u0119 przejrzyste klucze pami\u0119ci podr\u0119cznej oraz uporz\u0105dkowan\u0105 struktur\u0119 folder\u00f3w, aby tre\u015bci by\u0142y rozdzielone wed\u0142ug hosta, schematu i URI. Je\u015bli szukasz wskaz\u00f3wek, jak zacz\u0105\u0107, zapoznaj si\u0119 z moim przewodnikiem dotycz\u0105cym <a href=\"https:\/\/webhosting.de\/pl\/okno-optymalizacji-pamieci-podrecznej-nginx\/\">Optymalizacja pami\u0119ci podr\u0119cznej NGINX<\/a> wykorzysta\u0107 jako punkt odniesienia. Dzi\u0119ki temu konfiguracja pozostaje przejrzysta, a przysz\u0142e rozbudowy przebiegaj\u0105 sprawniej.<\/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\/08\/nginx_fastcgi_cache_wp_0325.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Odpowiednie scenariusze i istotne wyj\u0105tki<\/h2>\n<p>Najwi\u0119ksze korzy\u015bci odnosi <strong>Tre\u015b\u0107<\/strong>, czyli blogi, magazyny, strony docelowe i witryny korporacyjne z du\u017c\u0105 liczb\u0105 anonimowych odwiedzin. Buforuj\u0119 ka\u017cd\u0105 stron\u0119, kt\u00f3ra pozostaje niezmienna dla odwiedzaj\u0105cych, i wykluczam wszystko, co jest spersonalizowane. Obejmuje to logowanie, profil, formularze komentarzy, koszyk WooCommerce, kas\u0119 oraz sekcj\u0119 \u201eMoje konto\u201d. Pliki cookie i nag\u0142\u00f3wki s\u0142u\u017c\u0105 jako kryteria pozwalaj\u0105ce na celowe pomini\u0119cie pami\u0119ci podr\u0119cznej. Dzi\u0119ki temu strony publiczne dzia\u0142aj\u0105 b\u0142yskawicznie, podczas gdy wra\u017cliwe obszary pozostaj\u0105 prawid\u0142owo dynamiczne, a u\u017cytkownicy maj\u0105 zapewnion\u0105 p\u0142ynn\u0105 <strong>s\u0142u\u017cy<\/strong> sta\u0107 si\u0119.<\/p>\n\n<h2>Podstawy techniczne: strefa pami\u0119ci podr\u0119cznej, klucz, nag\u0142\u00f3wek<\/h2>\n<p>Najpierw definiuj\u0119 <strong>\u015acie\u017cka pami\u0119ci podr\u0119cznej<\/strong> oraz stref\u0119 w konfiguracji NGINX, wraz z rozmiarem i czasem bezczynno\u015bci. Klucz pami\u0119ci podr\u0119cznej zawiera schemat, host i URI, a opcjonalnie tak\u017ce ci\u0105gi zapytania, dzi\u0119ki czemu warianty s\u0105 przechowywane oddzielnie. Za pomoc\u0105 regu\u0142 `fastcgi_cache_valid`, `bypass` i `no-cache` kontroluj\u0119, kiedy \u017c\u0105dania omijaj\u0105 pami\u0119\u0107 podr\u0119czn\u0105. Wa\u017cne nag\u0142\u00f3wki, takie jak Set-Cookie, Authorization oraz niekt\u00f3re pliki cookie z WordPressa lub WooCommerce, sygnalizuj\u0105 dynamik\u0119. Dodatkowo okre\u015blam, kt\u00f3re strony b\u0142\u0119d\u00f3w lub odpowiedzi 50x maj\u0105 by\u0107 kr\u00f3tkotrwale buforowane, aby strona nadal dzia\u0142a\u0142a pod obci\u0105\u017ceniem <strong>odpowiedzi<\/strong>.<\/p>\n\n<h2>Zarz\u0105dzanie pami\u0119ci\u0105 podr\u0119czn\u0105 i strategia czyszczenia<\/h2>\n<p>Pami\u0119\u0107 podr\u0119czna dzia\u0142a optymalnie tylko wtedy, gdy aktualizacje s\u0105 niezawodne <strong>Rozwijanie<\/strong>. Podczas zapisywania wpisu uruchamiam ukierunkowane czyszczenie pami\u0119ci podr\u0119cznej dla odpowiednich adres\u00f3w URL, w tym stron g\u0142\u00f3wnych, kategorii i kana\u0142\u00f3w. Dodatkowo ustawiam odpowiedni czas TTL, aby tre\u015bci by\u0142y okresowo generowane na nowo. W przypadku du\u017cych witryn pomocne jest wst\u0119pne \u0142adowanie wa\u017cnych stron docelowych, dzi\u0119ki czemu pierwszy odwiedzaj\u0105cy nie do\u015bwiadcza \u201ezimnego startu\u201d. Po ka\u017cdej zmianie sprawdzam wska\u017anik trafie\u0144 w pami\u0119ci podr\u0119cznej oraz czy operacje czyszczenia nie pozostawiaj\u0105 nieaktualnych fragment\u00f3w <strong>pozostawi\u0107<\/strong>.<\/p>\n\n<h2>Zasady dotycz\u0105ce WordPressa i WooCommerce<\/h2>\n<p>U\u017cytkownikom zalogowanym konsekwentnie zezwalam na korzystanie z pami\u0119ci podr\u0119cznej <strong>min\u0119\u0142o<\/strong>, zazwyczaj na podstawie pliku cookie \u201ewordpress_logged_in\u201d. W przypadku WooCommerce wykluczam koszyk, proces realizacji zam\u00f3wienia i sekcj\u0119 \u201eMoje konto\u201d na podstawie wzorca URI oraz zwracam uwag\u0119 na pliki cookie, takie jak \u201ewoocommerce_items_in_cart\u201d. Natomiast strony produkt\u00f3w, kategorii i tre\u015bci buforuj\u0119 w zwyk\u0142y spos\u00f3b. Dodatkowo usuwam zawarto\u015b\u0107 pami\u0119ci podr\u0119cznej, gdy za pomoc\u0105 haka zmienia si\u0119 stan magazynowy lub cena. Takie rozdzielenie zapewnia szybkie dzia\u0142anie stron publicznych, nie wp\u0142ywaj\u0105c na procesy zakupowe. <strong>przeszkadza\u0107<\/strong>.<\/p>\n\n<h2>Jak prawid\u0142owo dobra\u0107 TTL, Stale i Locking<\/h2>\n<p>Ustawiam TTL tre\u015bci w spos\u00f3b praktyczny, na przyk\u0142ad od kilku minut do kilku godzin, w zale\u017cno\u015bci od <strong>Rzeczywisto\u015b\u0107<\/strong> oraz ruch sieciowy. Opcje \u201estale\u201d pozwalaj\u0105 mi na kr\u00f3tkotrwa\u0142e dostarczanie nieaktualnych obiekt\u00f3w, podczas gdy w tle tworzona jest ich najnowsza wersja. Blokowanie zapobiega efektowi \u201estampede\u201d, gdy wiele \u017c\u0105da\u0144 jednocze\u015bnie trafia na nieaktualny obiekt. Odpowiednie regu\u0142y dotycz\u0105ce b\u0142\u0119d\u00f3w i limit\u00f3w czasu gwarantuj\u0105, \u017ce odwiedzaj\u0105cy otrzymaj\u0105 odpowied\u017a nawet w przypadku kr\u00f3tkotrwa\u0142ej awarii. Wi\u0119cej informacji na temat wytycznych przedstawiam w moim zwi\u0119z\u0142ym <a href=\"https:\/\/webhosting.de\/pl\/strategie-kontroli-pamieci-podrecznej-http-hosting-cachemaster\/\">Strategie kontroli pami\u0119ci podr\u0119cznej<\/a>, kt\u00f3re dobrze wsp\u00f3\u0142dzia\u0142aj\u0105 z FastCGI Cache.<\/p>\n\n<h2>Monitorowanie i warto\u015bci pomiarowe, kt\u00f3re maj\u0105 znaczenie<\/h2>\n<p>Najpierw mierz\u0119 <strong>TTFB<\/strong>, a nast\u0119pnie liczb\u0119 \u017c\u0105da\u0144 na sekund\u0119 i obci\u0105\u017cenie procesora, w podziale na trafienia i pomini\u0119cia w pami\u0119ci podr\u0119cznej. Logi NGINX i nag\u0142\u00f3wki odpowiedzi wskazuj\u0105 mi, czy mamy do czynienia z HIT, MISS, BYPASS czy EXPIRED. Rosn\u0105cy wska\u017anik trafie\u0144 przy malej\u0105cym obci\u0105\u017ceniu procesora jest dla mnie sygna\u0142em, \u017ce regu\u0142y dzia\u0142aj\u0105. Dodatkowo obserwuj\u0119 operacje wej\u015bcia\/wyj\u015bcia w systemie plik\u00f3w oraz liczb\u0119 aktywnych proces\u00f3w PHP. Do buforowania warunkowego sensownie wykorzystuj\u0119 ETag\/Last-Modified i odsy\u0142am do mojego przewodnika na temat <a href=\"https:\/\/webhosting.de\/pl\/buforowanie-warunkowe-http-etag-data-ostatniej-modyfikacji-przewodnik-dotyczacy-wydajnosci\/\">Buforowanie warunkowe z wykorzystaniem ETag<\/a>, aby pami\u0119\u0107 podr\u0119czna przegl\u0105darki i serwera dzia\u0142a\u0142y w harmonii, a obci\u0105\u017cenie sieci odczuwalnie si\u0119 zmniejszy\u0142o <strong>upadki<\/strong>.<\/p>\n\n<h2>Typowe b\u0142\u0119dy i sposoby ich rozwi\u0105zywania<\/h2>\n<p>Cz\u0119st\u0105 przeszkod\u0105 jest zbyt szeroki <strong>Klucz pami\u0119ci podr\u0119cznej<\/strong>, kt\u00f3ry maskuje warianty i wy\u015bwietla nieprawid\u0142owe tre\u015bci. R\u00f3wnie istotny jest brak wyklucze\u0144 dla plik\u00f3w cookie, takich jak wordpress_logged_in czy sygna\u0142y WooCommerce. Je\u015bli czyszczenie dotyczy tylko pojedynczej strony, strony archiwum i strona g\u0142\u00f3wna pozostaj\u0105 nieaktualne; dlatego rozszerzam zakres docelowych stron. Cz\u0119sto potrzebuj\u0119 r\u00f3wnie\u017c ci\u0105g\u00f3w zapytania w kluczu, w przeciwnym razie jeden wariant nadpisuje drugi. Zbyt kr\u00f3tkie warto\u015bci TTL powoduj\u0105 niepotrzebne wska\u017aniki MISS, natomiast zbyt d\u0142ugie zwi\u0119kszaj\u0105 ryzyko nieaktualno\u015bci <strong>Strony<\/strong>.<\/p>\n\n<h2>Praktyczny schemat post\u0119powania przy wdra\u017caniu<\/h2>\n<p>Ka\u017cdy projekt rozpoczynam od jasnego <strong>Plan<\/strong>: Okre\u015blam cele, zaznaczam \u015bcie\u017cki do buforowania, definiuj\u0119 dynamiczne wyj\u0105tki. Nast\u0119pnie konfiguruj\u0119 \u015bcie\u017ck\u0119 bufora, stref\u0119, klucz oraz regu\u0142y nag\u0142\u00f3wk\u00f3w. W kolejnym kroku testuj\u0119 wyniki HIT\/MISS, sprawdzam pliki cookie i monitoruj\u0119 TTFB podczas lekkiego testu obci\u0105\u017ceniowego. Nast\u0119pnie optymalizuj\u0119 TTL, Stale i blokady, a\u017c krzywe b\u0119d\u0105 wygl\u0105da\u0142y prawid\u0142owo. Na koniec dokumentuj\u0119 \u015bcie\u017cki czyszczenia, zakresy odpowiedzialno\u015bci oraz kr\u00f3tk\u0105 instrukcj\u0119 dla redaktor\u00f3w, aby tre\u015bci zawsze <strong>\u015bwie\u017cy<\/strong> pozosta\u0107.<\/p>\n\n<h2>Praktyczna konfiguracja NGINX i przyk\u0142ady<\/h2>\n<p>Uwa\u017cam, \u017ce ta konfiguracja <strong>czysty<\/strong> uporz\u0105dkowany: centralna strefa pami\u0119ci podr\u0119cznej, unikalny klucz, przejrzyste regu\u0142y pomijania oraz pomocne nag\u0142\u00f3wki diagnostyczne. Solidny punkt wyj\u015bcia wygl\u0105da nast\u0119puj\u0105co:<\/p>\n<pre><code>fastcgi_cache_path \/var\/cache\/nginx levels=1:2 keys_zone=WORDPRESS:100m \\\n    inactive=60m use_temp_path=off loader_files=200 loader_sleep=50ms loader_threshold=300ms;\n\nmap $request_method $skip_non_get {\n    default 1;\n    GET 0;\n    HEAD 0;\n}\n\nmap $http_cookie $skip_cookie {\n    default 0;\n    ~*(wordpress_logged_in|comment_author|woocommerce_items_in_cart|wp_woocommerce_session|woocommerce_cart_hash) 1;\n}\n\nmap $arg_preview $is_preview { domy\u015blnie 0; 1 1; }\nmap $request_uri $is_search { domy\u015blnie 0; ~*\\?s= 1; }\n\nserver {\n    # ...\n    set $skip_cache 0;\n    if ($skip_non_get) { set $skip_cache 1; }\n    if ($skip_cookie)  { set $skip_cache 1; }\n    if ($is_preview)   { set $skip_cache 1; }\n    if ($is_search)    { set $skip_cache 1; }\n\n    location ~ \\.php$ {\n include fastcgi_params;\n fastcgi_pass unix:\/run\/php\/php8.2-fpm.sock;\n\n        fastcgi_cache WORDPRESS;\n fastcgi_cache_key \"$scheme$request_method$host$request_uri\";\n fastcgi_cache_bypass    $skip_cache;\n        fastcgi_no_cache $skip_cache;\n\n fastcgi_cache_valid 200 301 302 10m;\n        fastcgi_cache_valid 404 1m;\n fastcgi_cache_use_stale updating error timeout http_500 http_502 http_503;\n fastcgi_cache_lock on;\n fastcgi_cache_lock_timeout 5s;\n\n        add_header X-Cache $upstream_cache_status always;\n add_header X-Cache-Key   $scheme$host$request_uri always;\n    }\n}<\/code><\/pre>\n<p>W zale\u017cno\u015bci od projektu rozszerz\u0119 to p\u00f3\u017aniej o sygna\u0142y Vary (np. j\u0119zyk, waluta) oraz bardziej szczeg\u00f3\u0142owe wykluczenia. Wa\u017cne: POST, PUT, DELETE oraz wszystko z <strong>Autoryzacja<\/strong> lub <strong>Ustawienie pliku cookie<\/strong> konsekwentnie omijam PHP.<\/p>\n\n<h2>Szczeg\u00f3\u0142owe informacje na temat strategii dotycz\u0105cych wariant\u00f3w i plik\u00f3w cookie<\/h2>\n<p>Im mniej wariant\u00f3w zawiera dokument HTML, tym wy\u017cszy wska\u017anik trafie\u0144. Celowo ograniczam liczb\u0119 wariant\u00f3w i dziel\u0119 je tylko tam, gdzie <strong>Wydanie rozr\u00f3\u017cnia<\/strong>:<\/p>\n<ul>\n  <li><strong>J\u0119zyk<\/strong>: Idealnym rozwi\u0105zaniem jest jedna responsywna wersja HTML. Je\u015bli istniej\u0105 oddzielne wersje j\u0119zykowe, u\u017cywam pliku cookie j\u0119zyka lub adresu URI (np. \/de\/, \/en\/) w kluczu, a nie agenta u\u017cytkownika.<\/li>\n  <li><strong>Urz\u0105dzenia<\/strong>: Unikam podzia\u0142u plik\u00f3w UA. CSS oparty na podej\u015bciu \u201eMobile First\u201d oraz responsywne uk\u0142ady pozwalaj\u0105 zachowa\u0107 zawarto\u015b\u0107 pami\u0119ci podr\u0119cznej <strong>kompaktowy<\/strong>.<\/li>\n  <li><strong>Waluta\/kraj<\/strong>: W przypadku sklep\u00f3w z geolokalizacj\u0105 lub prze\u0142\u0105cznikiem walut celowo dostosowuj\u0119 ustawienia na podstawie sta\u0142ego pliku cookie, a nie adresu IP. W przeciwnym razie kardynalno\u015b\u0107 gwa\u0142townie wzro\u015bnie.<\/li>\n  <li><strong>Ci\u0105gi zapyta\u0144<\/strong>: Dodaj\u0119 do bia\u0142ej listy przydatne parametry (np. pagination, filter) i ignoruj\u0119 parametry \u015bledzenia (utm_*, gclid), aby nie powstawa\u0142y zb\u0119dne warianty.<\/li>\n<\/ul>\n<p>Nale\u017cy zachowa\u0107 szczeg\u00f3ln\u0105 ostro\u017cno\u015b\u0107 w przypadku plik\u00f3w cookie wtyczek zwi\u0105zanych z wyra\u017ceniem zgody lub banerami: je\u015bli umieszczaj\u0105 one pliki cookie ju\u017c na stronie startowej, NGINX mo\u017ce b\u0142\u0119dnie rozpozna\u0107 je jako dynamiczne. Dbam o to, aby wy\u0142\u0105cznie <strong>wizualne<\/strong> Banery bez wp\u0142ywu na dzia\u0142anie nie powoduj\u0105 uruchomienia kaskady BYPASS pami\u0119ci podr\u0119cznej.<\/p>\n\n<h2>System plik\u00f3w, strefa pami\u0119ci podr\u0119cznej i optymalizacja modu\u0142u \u0142aduj\u0105cego<\/h2>\n<p>Wyb\u00f3r pami\u0119ci podr\u0119cznej ma ogromny wp\u0142yw na wydajno\u015b\u0107. Korzystam z szybkich lokalnych dysk\u00f3w SSD i planuj\u0119 <strong>keys_zone<\/strong> du\u017co miejsca (np. 100\u2013256 MB na indeksy), aby nie zaj\u0105\u0107 przestrzeni przeznaczonej na metadane. Plik <strong>nieaktywny<\/strong>\u2013 Czas ustalam na podstawie profilu ruchu: w przypadku du\u017cej ilo\u015bci tre\u015bci typu \u201elong tail\u201d d\u0142u\u017csza nieaktywno\u015b\u0107 jest korzystna, natomiast w przypadku bardzo dynamicznych portali raczej nie. Za pomoc\u0105 parametr\u00f3w loader_* reguluj\u0119, jak intensywnie NGINX wst\u0119pnie \u0142aduje obiekty \u2013 aby system pod obci\u0105\u017ceniem <strong>spok\u00f3j<\/strong> pozostaje. W przypadku bardzo obci\u0105\u017conych witryn przydatne mo\u017ce by\u0107 utworzenie cz\u0119\u015bciowej pami\u0119ci podr\u0119cznej w tmpfs, ale wtedy dok\u0142adnie sprawdzam obci\u0105\u017cenie pami\u0119ci RAM i zu\u017cycie i-w\u0119z\u0142\u00f3w. Rotacja log\u00f3w i ograniczenia liczby plik\u00f3w zapobiegaj\u0105 zape\u0142nieniu woluminu; monitoring zwraca uwag\u0119 na czas oczekiwania na operacje wej\u015bcia\/wyj\u015bcia, wolne miejsce oraz liczb\u0119 otwartych deskryptor\u00f3w plik\u00f3w.<\/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\/08\/wordpress-nginx-fastcgi-cache-speed-8375.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Prawid\u0142owe warstwowanie pami\u0119ci podr\u0119cznej CDN i przegl\u0105darki<\/h2>\n<p>Lubi\u0119 \u0142\u0105czy\u0107 pami\u0119\u0107 podr\u0119czn\u0105 NGINX z <strong>Edge\u2011CDN<\/strong> oraz odpowiednimi warto\u015bciami TTL w przegl\u0105darce. Obowi\u0105zuje zasada: serwer \u017ar\u00f3d\u0142owy (NGINX) dostarcza sp\u00f3jne strony HTML, sie\u0107 CDN dodatkowo je buforuje, a przegl\u0105darka otrzymuje umiarkowanie kr\u00f3tkie warto\u015bci max-age, dzi\u0119ki czemu redaktorzy mog\u0105 szybko dostrzec zmiany. Mechanizmy Stale oraz <strong>ponownie zweryfikowa\u0107<\/strong>\u2013 Strategie ustalam tak, aby w\u0119z\u0142y Edge mog\u0142y nadal dostarcza\u0107 tre\u015bci, podczas gdy NGINX w tle ponownie je renderuje. Operacje czyszczenia pami\u0119ci cache uruchamiam w okre\u015blonej kolejno\u015bci (najpierw w CDN, potem w serwerze \u017ar\u00f3d\u0142owym) lub synchronicznie w obu miejscach, aby unikn\u0105\u0107 powstawania nieaktualnych fragment\u00f3w tre\u015bci. Sprawdzam r\u00f3wnie\u017c, czy nag\u0142\u00f3wki CDN, takie jak Age, Cache-Status i Vary, nie koliduj\u0105 z moimi regu\u0142ami serwera.<\/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\/08\/nginx_fastcgi_cache_wp9331.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Wst\u0119pne przygotowanie, wdro\u017cenie i procesy redakcyjne<\/h2>\n<p>Aby po zresetowaniu serwera nie dosz\u0142o do sytuacji, w kt\u00f3rej tysi\u0105ce u\u017cytkownik\u00f3w wywo\u0142uj\u0105 \u201ezimny start\u201d, podgrzewam kluczowe strony <strong>ukierunkowany<\/strong> przed: strony g\u0142\u00f3wne, bestsellery, kategorie, strony centrum magazynu. Lekki modu\u0142 wst\u0119pnego \u0142adowania odczytuje map\u0119 strony, wywo\u0142uje \u017c\u0105dania r\u00f3wnolegle i przestrzega limit\u00f3w cz\u0119stotliwo\u015bci, dzi\u0119ki czemu ani PHP, ani baza danych nie osi\u0105gaj\u0105 swoich granic wydajno\u015bci. W przypadku wdro\u017ce\u0144 rozr\u00f3\u017cniam mi\u0119dzy pe\u0142nym od\u015bwie\u017ceniem (zmiana motywu\/kodu) a cz\u0119\u015bciowym od\u015bwie\u017ceniem (aktualizacja tre\u015bci) i dokumentuj\u0119 <strong>Kroki<\/strong> dla redakcji i zespo\u0142u operacyjnego. Dzi\u0119ki temu okresy premiery s\u0105 kr\u00f3tkie i wi\u0105\u017c\u0105 si\u0119 z niewielkim ryzykiem.<\/p>\n\n<h2>Wielostronno\u015b\u0107, wieloj\u0119zyczno\u015b\u0107 i logika walutowa<\/h2>\n<p>W przypadku WordPress Multisite \u015bci\u015ble rozdzielam klucze pami\u0119ci podr\u0119cznej wed\u0142ug nazwy hosta lub identyfikatora witryny, aby <strong>Podstrony<\/strong> s\u0105 starannie odizolowane. W przypadku stron wieloj\u0119zycznych z WPML\/Polylang preferuj\u0119 korzystanie ze \u015bcie\u017cek j\u0119zykowych (de\/en) lub dedykowanych domen; klucz zawiera w\u00f3wczas schemat, host i \u015bcie\u017ck\u0119. W sklepach internetowych precyzyjnie uwzgl\u0119dniam pliki cookie waluty i geolokalizacj\u0119: strony produkt\u00f3w i kategorii buforuj\u0119 wed\u0142ug waluty, a koszyk i kasa pozostaj\u0105 dynamiczne. Je\u015bli zmieniaj\u0105 si\u0119 ceny lub stawki podatkowe, uruchamiam <strong>cz\u0119\u015bciowo<\/strong> Usu\u0144 (produkt, kategori\u0119, modu\u0142y zapowiedzi), aby centralne strony startowe szybko uzyska\u0142y sp\u00f3jny wygl\u0105d.<\/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\/08\/wordpress_nginx_cache_3421.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Testy obci\u0105\u017ceniowe, wska\u017aniki i przywracanie stanu poprzedniego<\/h2>\n<p>Przed uruchomieniem systemu symuluj\u0119 realistyczne <strong>Szczyty<\/strong> (mieszanka GET\/HEAD, zasoby, HTML) i \u015bci\u015ble rozdzielam pomiary: \u201ewarm\u201d vs. \u201ecold\u201d, z CDN\/bez CDN, u\u017cytkownicy zalogowani vs. anonimowi. Sprawdzam P50\/P95 TTFB, wska\u017aniki b\u0142\u0119d\u00f3w, obci\u0105\u017cenie procesora, czas oczekiwania na operacje wej\u015bcia\/wyj\u015bcia oraz liczb\u0119 proces\u00f3w PHP. W NGINX aktywuj\u0119 odpowiedni format logowania z opcj\u0105 $upstream_cache_status i sprawdzam pr\u00f3bki bezpo\u015brednio w nag\u0142\u00f3wku odpowiedzi (HIT\/MISS\/BYPASS\/EXPIRED). Kr\u00f3tka \u015bcie\u017cka cofania zmian (prze\u0142\u0105cznik pomijania dla trybu pami\u0119ci podr\u0119cznej, skr\u00f3cony czas TTL, wy\u0142\u0105czenie poszczeg\u00f3lnych regu\u0142) gwarantuje, \u017ce w przypadku nieprawid\u0142owo\u015bci <strong>natychmiast<\/strong> mo\u017ce reagowa\u0107 bez powodowania destabilizacji ca\u0142ego systemu.<\/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\/08\/nginxcaching-optimierung-1043.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Bezpiecze\u0144stwo, poprawno\u015b\u0107 i ochrona danych<\/h2>\n<p>Konsekwentnie zapobiegam trafianiu tre\u015bci poufnych do pami\u0119ci podr\u0119cznej: obszary administracyjne, tryby podgl\u0105du, strony prywatne, operacje zabezpieczone kodami nonce. Przestrzegam rozr\u00f3\u017cnienia mi\u0119dzy metodami HEAD i GET, a metody POST pozostaj\u0105 niepodlegaj\u0105ce buforowaniu. Set-Cookie i Authorization s\u0105 traktowane jako twarde <strong>BYPASS<\/strong>\u2013 sygna\u0142y. Pomijam strony podgl\u0105du (preview=true) i wyniki wyszukiwania (s=), aby unikn\u0105\u0107 fa\u0142szywych trafie\u0144. Ponadto sprawdzam, czy w odpowiedziach HTML nie pojawiaj\u0105 si\u0119 \u017cadne dane osobowe, kt\u00f3re mog\u0142yby nast\u0119pnie trafi\u0107 do pami\u0119ci podr\u0119cznej. W razie potrzeby izoluj\u0119 spersonalizowane fragmenty za pomoc\u0105 oddzielnych punkt\u00f3w ko\u0144cowych AJAX, kt\u00f3re celowo <strong>nie<\/strong> pami\u0119\u0107 podr\u0119czna.<\/p>\n\n<h2>Prawid\u0142owe post\u0119powanie w sytuacjach skrajnych i wyj\u0105tkowych<\/h2>\n<p>Niekt\u00f3re wzorce powtarzaj\u0105 si\u0119 u mnie regularnie: mapy witryn XML i punkty ko\u0144cowe kana\u0142\u00f3w buforuj\u0119 na kr\u00f3tko (np. 1\u20135 minut). Przekierowania 301\/302 weryfikuj\u0119 osobno, aby wykluczy\u0107 p\u0119tle przekierowa\u0144. Strony archiwalne i paginacyjne otrzymuj\u0105 umiarkowane warto\u015bci TTL, poniewa\u017c cz\u0119sto zawieraj\u0105 linki do <strong>\u015bwie\u017cy<\/strong> Zawieraj\u0105 dane. Parametry, kt\u00f3re wp\u0142ywaj\u0105 wy\u0142\u0105cznie na sortowanie, mog\u0105 znajdowa\u0107 si\u0119 w kluczu, ale nie mog\u0105 sztucznie skraca\u0107 czasu TTL. A je\u015bli wtyczka nieoczekiwanie ustawia pliki cookie, sprawdzam, czy s\u0105 one rzeczywi\u015bcie potrzebne do wygenerowania kodu HTML <strong>istotny<\/strong> s\u0105 \u2013 w przeciwnym razie oznaczam je jako ignorowane, aby unikn\u0105\u0107 niepotrzebnych trafie\u0144 BYPASS.<\/p>\n\n<h2>Kr\u00f3tkie podsumowanie<\/h2>\n<p>Dzi\u0119ki NGINX FastCGI Cache przyspieszam dzia\u0142anie WordPressa poprzez <strong>\u0179r\u00f3d\u0142o<\/strong>, generuj kod HTML bezpo\u015brednio i unikaj kosztownych proces\u00f3w PHP. Precyzyjne wykluczenia oraz niezawodna funkcja \u201ePurge\u201d zapewniaj\u0105 aktualno\u015b\u0107 tre\u015bci, a jednocze\u015bnie znacznie obni\u017caj\u0105 warto\u015bci TTFB i obci\u0105\u017cenie procesora. Praktyczne ustawienie TTL z funkcjami \u201eStale\u201d i \u201eLocking\u201d gwarantuje p\u0142ynne dostarczanie tre\u015bci nawet w okresach szczytowego obci\u0105\u017cenia. Kto konsekwentnie obserwuje wyniki pomiar\u00f3w i na bie\u017c\u0105co dopracowuje regu\u0142y, osi\u0105ga trwale szybkie strony. W ten spos\u00f3b strona zyskuje na responsywno\u015bci, pozostaje \u0142atwa w utrzymaniu i spokojnie rozwija si\u0119 wraz ze wzrostem <strong>Ruch uliczny<\/strong> do \u015brodka.<\/p>","protected":false},"excerpt":{"rendered":"<p>Pami\u0119\u0107 podr\u0119czna NGINX FastCGI poprawia wydajno\u015b\u0107 WordPressa i stanowi skuteczn\u0105 alternatyw\u0119 dla wtyczek.<\/p>","protected":false},"author":1,"featured_media":20907,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[733],"tags":[],"class_list":["post-20914","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress"],"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":"107","_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":"NGINX Cache","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":"20907","footnotes":null,"_links":{"self":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts\/20914","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=20914"}],"version-history":[{"count":0,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts\/20914\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/media\/20907"}],"wp:attachment":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/media?parent=20914"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/categories?post=20914"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/tags?post=20914"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}