{"id":35486,"date":"2019-10-31T22:04:36","date_gmt":"2019-10-31T19:04:36","guid":{"rendered":"https:\/\/prohoster.info\/blog\/vypusk-http-tcp-balansirovshhika-haproxy-2-0\/"},"modified":"2019-10-31T22:04:36","modified_gmt":"2019-10-31T19:04:36","slug":"vypusk-http-tcp-balansirovshhika-haproxy-2-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/news\/vypusk-http-tcp-balansirovshhika-haproxy-2-0","title":{"rendered":"Wydanie HTTP\/TCP load balancera HAProxy 2.0","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/www.haproxy.com\/blog\/haproxy-2-0-and-beyond\/\">Opublikowano<\/a><\/noindex> wydanie balansu obci\u0105\u017cenia <noindex><a rel=\"nofollow\" href=\"http:\/\/www.haproxy.org\">HAProxy 2.0<\/a><\/noindex>, umo\u017cliwiaj\u0105cego rozdzielanie ruchu HTTP oraz dowolnych zapyta\u0144 TCP pomi\u0119dzy grup\u0105 serwer\u00f3w, bior\u0105c pod uwag\u0119 wiele czynnik\u00f3w (na przyk\u0142ad sprawdza dost\u0119pno\u015b\u0107 serwer\u00f3w, ocenia poziom obci\u0105\u017cenia, ma \u015brodki przeciwdzia\u0142ania DDoS) oraz przeprowadza wst\u0119pn\u0105 filtracj\u0119 danych (na przyk\u0142ad mo\u017cna analizowa\u0107 nag\u0142\u00f3wki HTTP, filtrowa\u0107 przekazywanie niepoprawnych parametr\u00f3w zapytania, blokowa\u0107 wstrzykiwanie SQL i XSS, pod\u0142\u0105cza\u0107 agenty przetwarzania tre\u015bci). HAProxy mo\u017ce r\u00f3wnie\u017c <noindex><a rel=\"nofollow\" href=\"https:\/\/www.haproxy.com\/solutions\/microservices\/\">by\u0107 stosowane<\/a><\/noindex> s\u0142u\u017cy\u0107 do koordynacji interakcji komponent\u00f3w w systemach opartych na architekturze mikroserwis\u00f3w. Kod projektu napisany jest w j\u0119zyku C i <noindex><a rel=\"nofollow\" href=\"http:\/\/git.haproxy.org\/\">dostarczany<\/a><\/noindex> na licencji GPLv2. Projekt jest u\u017cywany na wielu du\u017cych stronach, w tym Airbnb, Alibaba, GitHub, Imgur, Instagram, Reddit, StackOverflow, Tumblr, Twitter i Vimeo.<\/p>\n<p>Kluczowe cechy wydania:<\/p>\n<ul>\n<li class=\"l\"> Wprowadzono nowe API <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/haproxytech\/dataplaneapi\">Data Plan<\/a><\/noindex>, kt\u00f3re umo\u017cliwia zarz\u0105dzanie ustawieniami HAProxy w locie za po\u015brednictwem REST Web API. W tym mo\u017cna dynamicznie dodawa\u0107 i usuwa\u0107 backendy i serwery, tworzy\u0107 ACL, zmienia\u0107 trasowanie zapyta\u0144, zmienia\u0107 powi\u0105zania procesor\u00f3w z IP;\n<li class=\"l\"> Dodano dyrektyw\u0119 nbthread, kt\u00f3ra pozwala skonfigurowa\u0107 liczb\u0119 w\u0105tk\u00f3w u\u017cywanych w HAProxy w celu optymalizacji pracy na procesorach wielordzeniowych. Domy\u015blnie liczba w\u0105tk\u00f3w roboczych jest wybierana w zale\u017cno\u015bci od dost\u0119pnych rdzeni CPU w aktualnym \u015brodowisku, a w \u015brodowiskach chmurowych domy\u015blnie ustawiana jest na jeden w\u0105tek. Aby ustawi\u0107 sztywne limity, dodano opcje kompilacji MAX_THREADS i MAX_PROCS, kt\u00f3re ograniczaj\u0105 g\u00f3rny limit liczby w\u0105tk\u00f3w i proces\u00f3w;\n<li class=\"l\"> Uproszczono u\u017cycie dyrektywy bind do przypisywania handler\u00f3w do adres\u00f3w sieciowych. Przy konfiguracji nie jest ju\u017c wymagane okre\u015blanie parametr\u00f3w procesu \u2014 domy\u015blnie po\u0142\u0105czenia b\u0119d\u0105 rozdzielane na w\u0105tki w zale\u017cno\u015bci od liczby aktywnych po\u0142\u0105cze\u0144.\n<li class=\"l\"> Uproszczono konfiguracj\u0119 log\u00f3w podczas uruchamiania w izolowanych kontenerach \u2014 log mo\u017cna teraz kierowa\u0107 do stdout i stderr, a tak\u017ce do dowolnego istniej\u0105cego deskryptora plik\u00f3w (np. \u00ablog fd@1 local0\u00bb);\n<li class=\"l\"> Domy\u015blnie w\u0142\u0105czone jest wsparcie dla HTX (Native HTTP Representation), kt\u00f3re zapewnia r\u00f3wnowa\u017cenie obci\u0105\u017cenia w przypadku stosowania zaawansowanych funkcji, takich jak end-to-end HTTP\/2, Layer 7 Retries i gRPC. HTX nie zast\u0119puje nag\u0142\u00f3wk\u00f3w na miejscu, ale ogranicza operacj\u0119 zmiany do usuni\u0119cia i dodania nowego nag\u0142\u00f3wka na ko\u0144cu listy, co umo\u017cliwia manipulowanie jakimikolwiek rozszerzonymi wariantami protoko\u0142u HTTP, zachowuj\u0105c pierwotn\u0105 semantyk\u0119 nag\u0142\u00f3wk\u00f3w i umo\u017cliwiaj\u0105c uzyskanie wy\u017cszej wydajno\u015bci przy translacji HTTP\/2 na HTTP\/1.1 i odwrotnie;\n<li class=\"l\"> Dodano oficjalne wsparcie dla trybu End-to-End HTTP\/2 (przetwarzanie wszystkich etap\u00f3w w HTTP\/2, w tym zapyta\u0144 do backendu, a nie tylko interakcji proxy z klientem);\n<li class=\"l\"> Wprowadzono pe\u0142ne wsparcie dla dwukierunkowego proxy protoko\u0142u gRPC z mo\u017cliwo\u015bci\u0105 analizy strumieni gRPC, wydzielania pojedynczych wiadomo\u015bci, rejestrowania ruchu gRPC w dzienniku oraz filtrowania wiadomo\u015bci za pomoc\u0105 ACL. gRPC umo\u017cliwia organizacj\u0119 pracy mikroserwis\u00f3w w r\u00f3\u017cnych j\u0119zykach programowania, kt\u00f3re wsp\u00f3\u0142dzia\u0142aj\u0105 ze sob\u0105 za pomoc\u0105 uniwersalnego API. Interakcja sieciowa w gRPC jest realizowana na bazie protoko\u0142u HTTP\/2 i opiera si\u0119 na zastosowaniu Protocol Buffers do serializacji danych.\n<li class=\"l\"> Dodano wsparcie dla trybu \u00abLayer 7 Retries\u00bb, umo\u017cliwiaj\u0105cego ponowne wysy\u0142anie \u017c\u0105da\u0144 HTTP w przypadku b\u0142\u0119d\u00f3w programowych, niezwi\u0105zanych z problemami z ustanowieniem po\u0142\u0105czenia sieciowego (np. w przypadku braku odpowiedzi lub pustej odpowiedzi na \u017c\u0105danie POST). Aby wy\u0142\u0105czy\u0107 tryb, w opcji \u00abhttp-request\u00bb dodano flag\u0119 \u00abdisable-l7-retry\u00bb, a dla precyzyjnej konfiguracji w sekcjach defaults, listen i backend dost\u0119pna jest opcja \u00abretry-on\u00bb. Dost\u0119pne s\u0105 nast\u0119puj\u0105ce znaki do ponownego wysy\u0142ania: all-retryable-errors, none, conn-failure, empty-response, junk-response, response-timeout, 0rtt-rejected oraz powi\u0105zanie z kodami odpowiedzi (404 itd.);\n<li class=\"l\"> Wprowadzono nowy mened\u017cer proces\u00f3w (Process Manager), kt\u00f3ry umo\u017cliwia skonfigurowanie wywo\u0142ania zewn\u0119trznych plik\u00f3w wykonywalnych z obs\u0142ugiwaczami dla HAProxy.<br \/>\nNa przyk\u0142ad w postaci takiego zewn\u0119trznego obs\u0142ugiwacza zrealizowano API Data Plan (\/usr\/sbin\/dataplaneapi), a tak\u017ce r\u00f3\u017cne silniki do przetwarzania strumieni Offload;<\/p>\n<li class=\"l\"> Dla .NET Core, Go, Lua i Pythona dodano wi\u0105zania do tworzenia rozszerze\u0144 SPOE (Stream Processing Offload Engine) i SPOP (Stream Processing Offload Protocol). Wcze\u015bniej wsparcie dla rozwoju rozszerze\u0144 istnia\u0142o tylko w j\u0119zyku C;\n<li class=\"l\"> Dodano zewn\u0119trzny obs\u0142ugiwacz spoa-mirror ( \/usr\/sbin\/spoa-mirror ) do mirrorowania zapyta\u0144 na oddzielny serwer (na przyk\u0142ad do kopiowania cz\u0119\u015bci ruchu roboczego w celu testowania eksperymentalnego \u015brodowiska w rzeczywistym obci\u0105\u017ceniu);\n<li class=\"l\"> Przedstawiony  <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/haproxytech\/kubernetes-ingress\/\">Kontroler Ingress HAProxy Kubernetes<\/a><\/noindex> w celu zapewnienia integracji z platform\u0105 Kubernetes;\n<li class=\"l\"> Dodano wbudowane wsparcie dla eksportu statystyk do systemu monitorowania, <noindex><a rel=\"nofollow\" href=\"https:\/\/prometheus.io\/\">Prometheus<\/a><\/noindex>;\n<li class=\"l\"> Rozszerzono protok\u00f3\u0142 Peers Protocol, u\u017cywany do wymiany informacji z innymi w\u0119z\u0142ami w HAProxy. W tym dodano wsparcie dla Heartbeat i szyfrowanej transmisji danych;\n<li class=\"l\"> Do dyrektywy \u00ablog\u00bb dodano parametr \u00absample\u00bb, pozwalaj\u0105cy rejestrowa\u0107 tylko cz\u0119\u015b\u0107 \u017c\u0105da\u0144, na przyk\u0142ad 1 z 10, w celu stworzenia analitycznej pr\u00f3bki;\n<li class=\"l\"> Dodano tryb automatycznego profilowania (dyrektywa profiling.tasks, kt\u00f3ra mo\u017ce przyjmowa\u0107 warto\u015bci auto, on i off). Automatyczne profilowanie jest w\u0142\u0105czane, je\u015bli \u015bredni czas op\u00f3\u017anienia przekracza 1000 ms. Aby zobaczy\u0107 dane profilowania w Runtime API, dodano polecenie \u00abshow profiling\u00bb lub istnieje mo\u017cliwo\u015b\u0107 resetowania statystyk w logu;\n<li class=\"l\"> Dodano wsparcie dla zdalnego dost\u0119pu do serwer\u00f3w backendowych przy u\u017cyciu protoko\u0142u SOCKS4;\n<li class=\"l\"> Dodano ko\u0144cowe (end-to-end, na swoim etapie przetwarzania \u017c\u0105dania, obejmuj\u0105ce backend) wsparcie dla mechanizmu szybkiego otwierania po\u0142\u0105cze\u0144 TCP (TFO \u2014 TCP Fast Open, RFC 7413), kt\u00f3ry pozwala skr\u00f3ci\u0107 liczb\u0119 krok\u00f3w ustanawiania po\u0142\u0105czenia poprzez po\u0142\u0105czenie w jeden \u017c\u0105danie pierwszego i drugiego kroku klasycznego 3-etapowego procesu negocjacji po\u0142\u0105czenia oraz umo\u017cliwia wysy\u0142anie danych na pocz\u0105tkowym etapie ustanawiania po\u0142\u0105czenia;\n<li class=\"l\"> Dodano nowe akcje:\n<ul>\n<li class=\"l\"> \u00abhttp-request replace-uri\u00bb do zamiany URL za pomoc\u0105 wyra\u017cenia regularnego;\n<li class=\"l\"> \u00abtcp-request content do-resolve\u00bb i \u00abhttp-request do-resolve\u00bb do rozwi\u0105zywania nazw host\u00f3w;\n<li class=\"l\">  \u00abtcp-request content set-dst\u00bb i \u00abtcp-request content set-dst-port\u00bb do wstawiania docelowego adresu IP i portu.\n<\/ul>\n<li class=\"l\"> Dodano nowe modu\u0142y konwersji:\n<ul>\n<li class=\"l\"> aes_gcm_dev do odszyfrowywania strumieni za pomoc\u0105 algorytm\u00f3w AES128-GCM, AES192-GCM i AES256-GCM;\n<li class=\"l\"> protobuf do wyodr\u0119bniania p\u00f3l z wiadomo\u015bci Protocol Buffers;\n<li class=\"l\"> ungrpc do wyodr\u0119bniania p\u00f3l z wiadomo\u015bci gRPC.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>\u0179r\u00f3d\u0142o: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=50904\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0440\u0435\u043b\u0438\u0437 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 HAProxy 2.0, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c HTTP-\u0442\u0440\u0430\u0444\u0438\u043a \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0435 TCP-\u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043c\u0435\u0436\u0434\u0443 \u0433\u0440\u0443\u043f\u043f\u043e\u0439 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432, \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0444\u0430\u043a\u0442\u043e\u0440\u043e\u0432 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432, \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0435\u0442 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u0438\u043c\u0435\u0435\u0442 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f DDoS) \u0438 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u0443\u044e \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044e \u0434\u0430\u043d\u043d\u044b\u0445 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c HTTP-\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438, \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 SQL \u0438 XSS, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0430\u0433\u0435\u043d\u0442\u044b \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430). HAProxy \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-35486","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0440\u0435\u043b\u0438\u0437 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 HAProxy.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/news\/vypusk-http-tcp-balansirovshhika-haproxy-2-0\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a HTTP\/TCP-\u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 HAProxy 2.0 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0440\u0435\u043b\u0438\u0437 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 HAProxy.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/news\/vypusk-http-tcp-balansirovshhika-haproxy-2-0\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:04:36+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:04:36+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Wydanie HTTP\/TCP-balancera obci\u0105\u017cenia HAProxy 2.0 | ProHoster","description":"Opublikowano wydanie balancera obci\u0105\u017cenia HAProxy.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/news\/vypusk-http-tcp-balansirovshhika-haproxy-2-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a HTTP\/TCP-\u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 HAProxy 2.0 | ProHoster","og:description":"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0440\u0435\u043b\u0438\u0437 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 HAProxy.","og:url":"https:\/\/prohoster.info\/pl\/blog\/news\/vypusk-http-tcp-balansirovshhika-haproxy-2-0","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:04:36+00:00","article:modified_time":"2019-10-31T19:04:36+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35486","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 23:28:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:01:26","updated":"2026-01-21 23:28:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/35486","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=35486"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/35486\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=35486"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=35486"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=35486"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}