[Nginx] ප්‍රතිචාර_තත්ත්වය = 0 පරාජය කරන්නේ කෙසේද

"පැති සටහන්" කාණ්ඩයෙන් ලිපියක්.

TL: DR:

http2_max_field_size 8k; # всех спасет!

එක් ව්‍යාපෘතියක, පසු අන්තයේ යම් අභ්‍යන්තර තර්කයක් වෙනස් කිරීමෙන් පසු, මම ලඝු-සටහන් වල අමුතු ප්‍රතිචාර_කේතයක් නිරීක්ෂණය කිරීමට පටන් ගතිමි, එනම් 0. ලඝු-සටහන් වල එය මේ වගේ දෙයක්:

{
  "timestamp": "2020-01-17T08:41:51+00:00",
  "remote_addr": "zzz.zzz.zzz.zzz",
  "request_time": 0,
  "upstream_response_time": "",
  "upstream_header_time": "",
  "http_accept_language": "-language",
  "response_status": 0,
  "request": "",
  "host": "example.com",
  "upstream_addr": "",
  "http_referrer": "",
  "request_length": 5854,
  "bytes_sent": 0,
  "http_user_agent": ""
}


මෙම මාතෘකාව පිළිබඳ ලියකියවිලි කියවීම සහ ගූගල් කිරීම කිසිවක් ලබා දුන්නේ නැත - මන්ද... සේවාදායකයා ශීර්ෂයන් පසු නොකර සම්බන්ධතාවය වසා දැමූ විට මෙම හැසිරීම සිදු වන බව සඳහන් වේ. හොඳයි, සහ wsgi_ සඳහා බෆර ප්‍රමාණය සහිත විවිධ විදේශීය දේවල්, අපගේ නඩුවේ “කිසිම ආකාරයකින්” යන වචනයට නොගැලපේ.

පොදුවේ ගත් කල, අපගේ වෙළුම් වලදී එය කිසිසේත්ම විවේචනාත්මක නොවන බව සැලකිල්ලට ගනිමින් ගැටළුව ගැටළුවක් නොවන බව අපි තීරණය කළෙමු.

හරියටම මා පහත ගැටලුවෙන් ප්‍රහේලිකාවක් වන තුරු: සමහර අවස්ථාවලදී, http හරහා සබැඳි ගැටළු නොමැතිව විවෘත වේ, නමුත් https හරහා වැඩ කිරීම සම්පූර්ණයෙන්ම ප්‍රතික්ෂේප කරයි, අපූරුව නිෂ්පාදනය කරයි: host example.com වෙත සම්බන්ධතාවය #0 නොවෙනස්ව පවතී.
curl: (52) සේවාදායකයෙන් හිස් පිළිතුර

ලඝු-සටහන් වලදී, අපට මෙය නිරීක්ෂණය කිරීමට හැකි වූයේ IP මගින් පමණි - ඉහත උදාහරණයෙන් දැකිය හැකි පරිදි ඉල්ලීමක් හෝ වෙනත් දත්ත කිසිවක් නොතිබුණි. කුප්‍රකට තත්ත්වය පමණක් 0 වේ, නමුත් මම ඉල්ලීමට බාධා නොකළ බව මම දනිමි! කුමක් විය හැකිද යන්න මම තේරුම් ගැනීමට පටන් ගතිමි. සෑම දෙයක්ම ඉතා සරල විය:

443 ssl අහන්න http2 backlog=8192;

හොඳයි, ඔබ ssl සම්බන්ධතා සඳහා http2 භාවිතා කරන්නේ නම්, ඉල්ලීම් බෆර වින්‍යාස කිරීම පමණක් ප්‍රමාණවත් නොවේ, ඒවා ngx_http_v2_module හි ද වින්‍යාස කළ යුතුය, එනම්:

Синтаксис:	http2_max_field_size размер;
Умолчание:	http2_max_field_size 4k;
Контекст:	http, server

HPACK භාවිතයෙන් සම්පීඩිත ඉල්ලීම් ශීර්ෂයක උපරිම ප්‍රමාණය සීමා කරයි. සීමාව නම සහ වටිනාකම යන දෙකටම එකසේ අදාළ වේ. Huffman කේතනය භාවිතා කරන්නේ නම්, ඇසුරුම් නොකළ නම සහ අගය නූල් වල සැබෑ ප්‍රමාණය විශාල විය හැක. බොහෝ විමසුම් සඳහා පෙරනිමි සීමාව සුදුසු වේ.

පොදුවේ, මෙයයි. සහ ඇයි සියල්ල? සබැඳියේ දිග දිගු වූ නිසා - එම 4k ට වඩා දිගු විය.

උදාහරණයක් ලෙස, 8kb (හෝ ප්‍රමාණවත් විය හැකි ප්‍රමාණයට) එය සැකසීමෙන් අපි ගැටලුව විසඳන්නෙමු.
ඉතින් ඒක යනවා.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න