{"id":55407,"date":"2020-01-20T00:00:00","date_gmt":"2020-01-19T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/nginx-kak-pobedit-response_status-0"},"modified":"2020-02-18T14:03:31","modified_gmt":"2020-02-18T11:03:31","slug":"nginx-kak-pobedit-response_status-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/nginx-kak-pobedit-response_status-0","title":{"rendered":"[Nginx] \u041a\u0430\u043a \u043f\u043e\u0431\u0435\u0434\u0438\u0442\u044c response_status = 0","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ein Artikel der Gattung \u201eNotizen am Rande\u201c.<\/p>\n<p><b class=\"spoiler_title\">TL:DR:<\/b><\/p>\n<pre><code class=\"nginx\">http2_max_field_size 8k; # wird alle retten!<\/code><\/pre>\n<p>In einem der Projekte begann ich, nach einer \u00c4nderung der internen Logik im Backend einen seltsamen response_code in den Logs zu beobachten, n\u00e4mlich \u2014 0. In den Logs sieht es ungef\u00e4hr so aus:<\/p>\n<pre><code class=\"json\">{\n  \"timestamp\": \"2020-01-17T08:41:51+00:00\",\n  \"remote_addr\": \"zzz.zzz.zzz.zzz\",\n  \"request_time\": 0,\n  \"upstream_response_time\": \"\",\n  \"upstream_header_time\": \"\",\n  \"http_accept_language\": \"-language\",\n  \"response_status\": 0,\n  \"request\": \"\",\n  \"host\": \"example.com\",\n  \"upstream_addr\": \"\",\n  \"http_referrer\": \"\",\n  \"request_length\": 5854,\n  \"bytes_sent\": 0,\n  \"http_user_agent\": \"\"\n}\n<\/code><\/pre>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nDas Lesen der Dokumentation und das Googeln zu diesem Thema hat genau nichts ergeben \u2014 da behauptet wird, dass solches Verhalten auftritt, wenn der Client die Verbindung schlie\u00dft, ohne die Header zu \u00fcbermitteln. Und es gibt verschiedene Exoten beim Umfang des Buffers f\u00fcr wsgi_, die in unserem Fall \u00fcberhaupt nicht passten.<\/p>\n<p>Insgesamt entschieden wir, dass das Problem \u2014 kein Problem ist, wenn man bedenkt, dass es bei unseren Volumina v\u00f6llig unkritisch ist.<\/p>\n<p>Genau bis zu dem Moment, als ich mit dem n\u00e4chsten Problem konfrontiert wurde: In einigen F\u00e4llen \u00f6ffneten Links problemlos \u00fcber http, weigerten sich jedoch v\u00f6llig, \u00fcber https zu funktionieren, und lieferten das wunderbare: Connection #0 to host example.com left intact<br \/>\ncurl: (52) Leere Antwort vom Server<\/p>\n<p>In den Logs konnte ich dieses Problem nur \u00fcber die IP nachverfolgen \u2014 keine Anfrage und keine weiteren Daten, wie aus dem obigen Beispiel ersichtlich \u2014 vorhanden. Nur der ber\u00fcchtigte Status 0, aber ich wei\u00df, dass ich die Anfrage nicht abgebrochen habe! Ich begann zu st\u00f6bern, was falsch laufen k\u00f6nnte. Und alles stellte sich als sehr einfach heraus:<\/p>\n<p><i>listen 443 <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/de\/ssl-sertifikat\/\"   title=\"ssl\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2274\">ssl<\/a> <b>http2<\/b> backlog=8192;<\/i><\/p>\n<p>Also \u2014 wenn man http2 f\u00fcr ssl-Verbindungen verwendet, reicht es nicht aus, nur die Anfrage-Puffer zu konfigurieren, man muss sie auch im ngx_http_v2_module konfigurieren, n\u00e4mlich:<\/p>\n<pre><code class=\"plaintext\">Syntax:\thttp2_max_field_size Gr\u00f6\u00dfe;\nVorgabe:\thttp2_max_field_size 4k;\nKontext:\thttp, server\n<\/code><\/pre>\n<p>\n<i>Begrenzt die maximale Gr\u00f6\u00dfe des Anforderungsheaders, der mit HPACK komprimiert wurde. Die Begrenzung gilt sowohl f\u00fcr den Namen als auch f\u00fcr den Wert. Wenn Huffman-Codierung verwendet wird, kann die tats\u00e4chliche Gr\u00f6\u00dfe der entpackten Namens- und Wert-Strings gr\u00f6\u00dfer sein. Die Standardgrenze eignet sich f\u00fcr die meisten Anfragen.<\/i><\/p>\n<p>Im Grunde ist das alles. Und warum? Weil die L\u00e4nge des Links gro\u00df war \u2014 gr\u00f6\u00dfer als die besagten 4k.<\/p>\n<p>Wenn man ihn beispielsweise auf 8kb (oder so viel, wie sicher ausreicht) festlegt, l\u00f6st man das Problem.<br \/>\nSo ist das.<br \/>\n<br \/>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/484330\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u0442\u0430\u0442\u044c\u044f \u0438\u0437 \u0440\u0430\u0437\u0440\u044f\u0434\u0430 \u00ab\u0437\u0430\u043c\u0435\u0442\u043a\u0438 \u043d\u0430 \u043f\u043e\u043b\u044f\u0445\u00bb. TL:DR: http2_max_field_size 8k; # \u0432\u0441\u0435\u0445 \u0441\u043f\u0430\u0441\u0435\u0442! \u041d\u0430 \u043e\u0434\u043d\u043e\u043c \u0438\u0437 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u043f\u043e\u0441\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u043b\u043e\u0433\u0438\u043a\u0438 \u0431\u0435\u043a\u0435\u043d\u0434\u0430, \u043d\u0430\u0447\u0430\u043b \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0439 response_code \u0432 \u043b\u043e\u0433\u0430\u0445, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u2014 0. \u0412 \u043b\u043e\u0433\u0430\u0445 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a: { &quot;timestamp&quot;: &quot;2020-01-17T08:41:51+00:00&quot;, &quot;remote_addr&quot;: &quot;zzz.zzz.zzz.zzz&quot;, &quot;request_time&quot;: 0, &quot;upstream_response_time&quot;: &quot;&quot;, &quot;upstream_header_time&quot;: &quot;&quot;, &quot;http_accept_language&quot;: &quot;-language&quot;, &quot;response_status&quot;: 0, &quot;request&quot;: &quot;&quot;, &quot;host&quot;: [&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":[688],"tags":[],"class_list":["post-55407","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u0442\u0430\u0442\u044c\u044f \u0438\u0437 \u0440\u0430\u0437\u0440\u044f\u0434\u0430 \u00ab\u0437\u0430\u043c\u0435\u0442\u043a\u0438 \u043d\u0430 \u043f\u043e\u043b\u044f\u0445\u00bb. TL:DR:http2_max_field_size 8k; # \u0432\u0441\u0435\u0445 \u0441\u043f\u0430\u0441\u0435\u0442! \u041d\u0430 \u043e\u0434\u043d\u043e\u043c \u0438\u0437 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u043f\u043e\u0441\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0439.\" \/>\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\/de\/blog\/administrirovanie\/nginx-kak-pobedit-response_status-0\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\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[Nginx] \u041a\u0430\u043a \u043f\u043e\u0431\u0435\u0434\u0438\u0442\u044c response_status = 0 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u0442\u0430\u0442\u044c\u044f \u0438\u0437 \u0440\u0430\u0437\u0440\u044f\u0434\u0430 \u00ab\u0437\u0430\u043c\u0435\u0442\u043a\u0438 \u043d\u0430 \u043f\u043e\u043b\u044f\u0445\u00bb. TL:DR:http2_max_field_size 8k; # \u0432\u0441\u0435\u0445 \u0441\u043f\u0430\u0441\u0435\u0442! \u041d\u0430 \u043e\u0434\u043d\u043e\u043c \u0438\u0437 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u043f\u043e\u0441\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0439.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/nginx-kak-pobedit-response_status-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=\"2020-01-19T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:03:31+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\udd47[Nginx] \u041a\u0430\u043a \u043f\u043e\u0431\u0435\u0434\u0438\u0442\u044c response_status = 0 | ProHoster","description":"Ein Artikel aus der Kategorie \u201eNotizen am Rande\u201c. TL:DR:http2_max_field_size 8k; # wird alle retten! In einem der Projekte, nach der \u00c4nderung einiger.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/nginx-kak-pobedit-response_status-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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[Nginx] \u041a\u0430\u043a \u043f\u043e\u0431\u0435\u0434\u0438\u0442\u044c response_status = 0 | ProHoster","og:description":"\u0421\u0442\u0430\u0442\u044c\u044f \u0438\u0437 \u0440\u0430\u0437\u0440\u044f\u0434\u0430 \u00ab\u0437\u0430\u043c\u0435\u0442\u043a\u0438 \u043d\u0430 \u043f\u043e\u043b\u044f\u0445\u00bb. TL:DR:http2_max_field_size 8k; # \u0432\u0441\u0435\u0445 \u0441\u043f\u0430\u0441\u0435\u0442! \u041d\u0430 \u043e\u0434\u043d\u043e\u043c \u0438\u0437 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u043f\u043e\u0441\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0439.","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/nginx-kak-pobedit-response_status-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":"2020-01-19T21:00:00+00:00","article:modified_time":"2020-02-18T11:03:31+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"55407","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:44:26","updated":"2026-02-09 17:28:53","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/55407","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=55407"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/55407\/revisions"}],"predecessor-version":[{"id":159518,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/55407\/revisions\/159518"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=55407"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=55407"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=55407"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}