
рдЖрдзреБрдирд┐рдХ рд╡реЗрдм рдЕрд╡рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдИ рдШрдЯрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рд╕реНрдкрд╖реНрдЯ рдФрд░ рдмрд╣реБрдд рдкрд░рд╕реНрдкрд░ рдирд╣реАрдВред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╡рд┐рднрд┐рдиреНрди рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕реНрдЯреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ рдХреЗ рдЖрдЧрдорди рдХреЗ рд╕рд╛рде рд╣рд░ рдХрджрдо рдкрд░ рд╕рдЪрдореБрдЪ рд╣реЛрдиреЗ рд▓рдЧреЗред рдмрд╛рд╣рд░реА рдХрд╛рд░рдХреЛрдВ (рддреГрддреАрдп-рдкрдХреНрд╖ рдПрдкреАрдЖрдИ, рд╕реЗрд╡рд╛рдУрдВ, рдЖрджрд┐) рдХреЛ рд╕рд╛рдорд╛рдиреНрдп "рдордЬрд╝рд╛" рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореБрд╢реНрдХрд┐рд▓ рддрд╕реНрд╡реАрд░ рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рддрд╛ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рднрд▓реЗ рд╣реА рдпреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрдо рд╡рд╛рд╕реНрддреБ рд╡рд┐рдЪрд╛рд░реЛрдВ рдФрд░ рд╕рдорд╛рдзрд╛рдиреЛрдВ рд╕реЗ рдПрдХрдЬреБрдЯ рд╣реЛрдВрдЧреЗ, рдЙрдирдореЗрдВ рдЕрд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдХреНрд╕рд░ рдЕрдЧрд▓реЗ рдЕрдкрд░рд┐рдЪрд┐рдд рд╡рд┐рд▓реНрдбреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрддрд╛рд░рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреНрдпрд╛ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛рдПрдБ рдХреЗрд╡рд▓ рд╕рдордп рдХреА рдмрд╛рдд рд╣реИред рдпреЗ рд╣рдорд╛рд░реЗ рдирд╡реАрдирддрдо рдЕрднреНрдпрд╛рд╕ рд╕реЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ рдЬреЛ рдпрд╣ рд▓реЗрдЦ рд╕рдорд░реНрдкрд┐рдд рд╣реИред рдХрд╛рд╕реНрдЯ: рдЧреЛрд▓рд╛рдВрдЧ, рд╕рдВрддрд░реА, рд░реИрдмрд┐рдЯрдПрдордХреНрдпреВ, рдирдЧрдиреЗрдХреНрд╕, рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдХреНрдпреВрдПрд▓ рдФрд░ рдЕрдиреНрдпред
рдЗрддрд┐рд╣рд╛рд╕ рдирдВрдмрд░ 1ред рдЧреЛрд▓рдВрдЧ рдФрд░ рдПрдЪрдЯреАрдЯреАрдкреА / 2
рдПрдХ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдЪрд▓рд╛рдирд╛ рдЬреЛ рдПрдХ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдХрдИ HTTP рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ, рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдХрд╛рд░рдг рдмрдирд╛ рд╣реИред рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХ рд╕рд░рд▓ рдЧреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрдиреНрдЧреНрд░реЗрд╕ / рдУрдкрдирдПрд╕реНрдЯреА рдХреЗ рдкреАрдЫреЗ рд╕реНрдерд┐рдд рдПрдХ рдЕрдиреНрдп рдЧреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм HTTP / 2 рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдХреБрдЫ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдб 400 рдХреЗ рд╕рд╛рде рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдорд┐рд▓рддреА рд╣реИрдВред рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдХрд╛рд░рдг рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕реЗ рджреВрд░ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЧреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдФрд░ рдЗрдирдЧреНрд░реЗрдб рдореЗрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕реНрдерд╛рди рдмрдирд╛рдпрд╛, рдЬреЛ рд╣рдореЗрд╢рд╛ 200 рд░рд┐рдЯрд░реНрди рдХрд░рддрд╛ рд╣реИред рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ!
рдлрд┐рд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рдмрд╛рд╣рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ - рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЗ рдПрдХ рдЕрд▓рдЧ рдЯреБрдХрдбрд╝реЗ рдкрд░ред рдкрд░рд┐рдгрд╛рдо рдПрдХ рдореЗрдХрдлрд╛рдЗрд▓ рдерд╛, рдЬрд┐рд╕рдХреА рдорджрдж рд╕реЗ рджреЛ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдПрдХ рдореЗрдВ - рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдЬреЛ рдХрд┐ рдиреЗрдЧреНрдиреЗрдХреНрд╕ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рджреВрд╕рд░реЗ рдореЗрдВ - рдЕрдкрд╛рдЪреЗ рдореЗрдВред рджреЛрдиреЛрдВ HTTP / 2 рдХреЛ рдПрдХ рд╕реНрд╡-рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреЗ рд╕рд╛рде рд╕реБрдирддреЗ рд╣реИрдВред рдЕрдВрддрд┐рдо рд╕рдВрдЪрд╛рд▓рди рд╕рдордп
рдЗрд╕ рднрдВрдбрд╛рд░ рдореЗрдВ рджреЗрдЦреЗрдВред
concurrency=200
рд╕рд╛рде рдорд╛рдирджрдВрдб рдЪрд▓рд╛рдПрдБ:
1.1ред nginx:
Completed 0 requests Completed 1000 requests Completed 2000 requests Completed 3000 requests Completed 4000 requests Completed 5000 requests Completed 6000 requests Completed 7000 requests Completed 8000 requests Completed 9000 requests ----- Bench results begin ----- Requests per second: 10336.09 Failed requests: 1623 ----- Bench results end -----
1.2ред рдЕрдкрд╛рдЪреЗ:
тАж ----- Bench results begin ----- Requests per second: 11427.60 Failed requests: 0 ----- Bench results end -----
рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣рд╛рдБ рдмрд┐рдВрджреБ Apache рдореЗрдВ HTTP / 2 рдХрд╛ рдХрдо рд╕рдЦреНрдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред
рдЖрдЗрдП рд╕рдВрдЧреЛрд╖реНрдареА рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ
concurrency=1000
:
2.1ред nginx:
тАж ----- Bench results begin ----- Requests per second: 11274.92 Failed requests: 4205 ----- Bench results end -----
2.2ред рдЕрдкрд╛рдЪреЗ:
тАж ----- Bench results begin ----- Requests per second: 11211.48 Failed requests: 5 ----- Bench results end -----
рдЙрд╕реА рд╕рдордп, рд╣рдо рдзреНрдпрд╛рди рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдкрд░рд┐рдгрд╛рдо
рд╣рд░ рдмрд╛рд░ рдкреБрди :
рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ: рдХреБрдЫ рд▓реЙрдиреНрдЪ рдмрд┐рдирд╛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВред
рдЧреЛрд▓рдВрдЧ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЧрд┐рддреБрдм рдкрд░ рдореБрджреНрджреЛрдВ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ
# 25009 рдФрд░
# 32441 рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЙрдирдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рдо
рдкреАрдЖрд░ 903 рдкрд░ рдЧрдП : HTTP / 2 рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рдирд╛!
рдЙрдкрд░реЛрдХреНрдд рд╡реЗрдм рд╕рд░реНрд╡рд░реЛрдВ рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЧреЛрддрд╛рдЦреЛрд░реА рдХрд┐рдП рдмрд┐рдирд╛ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдирд╛ рдХрд╛рдлреА рдХрдард┐рди рд╣реИред рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдорд▓реЗ рдореЗрдВ, рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП HTTP / 2 рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ред
рдЗрддрд┐рд╣рд╛рд╕ рдирдВрдмрд░ реи рдкреБрд░рд╛рдиреА рд╕рд╣рд╛рдиреБрднреВрддрд┐ рдФрд░ рд╕рдВрддрд░реА
рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рд╕рд┐рдореНрдлрдиреА PHP рдлреНрд░реЗрдорд╡рд░реНрдХ (v2.3) рдХрд╛ рдПрдХ рдмрд╣реБрдд рдкреБрд░рд╛рдирд╛ рд╕рдВрд╕реНрдХрд░рдг рдЕрднреА рднреА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред PHP рдореЗрдВ рдПрдХ рдкреБрд░рд╛рдирд╛ рд░реЗрд╡реЗрди рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рдПрдХ рд╕реНрд╡-рд▓рд┐рдЦрд┐рдд рд╡рд░реНрдЧ "рдХрд┐рдЯ рдореЗрдВ" рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдЬреЛ рдбреАрдмрдЧрд┐рдВрдЧ рдХреЛ рдереЛрдбрд╝рд╛ рдЬрдЯрд┐рд▓ рдХрд░рддрд╛ рд╣реИред
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд╕реЗрдВрдЯреНрд░реА рдореЗрдВ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЗ рдмрд╛рдж, рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЖрд╡реЗрджрди рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рдерд╛, рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдЖрдирд╛ рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рд╕рдВрддрд░реА рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рджреЛ рд╡рд┐рдХрд▓реНрдк рд▓реЗрдХрд░ рдФрд░ рд╕реЗрдВрдЯреНрд░реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реЗ рдбреАрдПрд╕рдПрди рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдИред рдиреЗрддреНрд░рд╣реАрди, рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд┐рдпрд╛: рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ (рдХрдерд┐рдд рд░реВрдк рд╕реЗ) рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рднреЗрдЬреЗ рдЧрдП рдереЗред
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪреЗрдХ рд╡рд┐рдХрд▓реНрдк:
<!DOCTYPE html> <html> <body> <script src="https://browser.sentry-cdn.com/5.6.3/bundle.min.js" integrity="sha384-/Cqa/8kaWn7emdqIBLk3AkFMAHBk0LObErtMhO+hr52CntkaurEnihPmqYj3uJho" crossorigin="anonymous"> </script> <h2>JavaScript in Body</h2> <p id="demo">A Paragraph.</p> <button type="button" onclick="myFunction()">Try it</button> <script> Sentry.init({ dsn: 'http://33dddd76e9f0c4ddcdb51@sentry.kube-dev.test//12' }); try { throw new Error('Caught'); } catch (err) { Sentry.captureException(err); } </script> </body> </html>
рдЗрд╕реА рддрд░рд╣ рдкрд╛рдпрдерди рдореЗрдВ:
from sentry_sdk import init, capture_message init("http://33dddd76e9f0c4ddcdb51@sentry.kube-dev.test//12") capture_message("Hello World")
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡реЗ рд╕рдВрддрд░реА рдореЗрдВ рдирд╣реАрдВ рдЖрдПред рд╕рдВрджреЗрд╢ рднреЗрдЬрддреЗ рд╕рдордп, рднреНрд░рдо рдкреИрджрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рдВрджреЗрд╢ рднреЗрдЬрд╛ рдЧрдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдЧреНрд░рд╛рд╣рдХ рддреБрд░рдВрдд рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реИрд╢ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВред
рдирддреАрдЬрддрди, рд╕рдорд╕реНрдпрд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд░реВрдк рд╕реЗ рд╣рд▓ рд╣реЛ рдЧрдИ: рдШрдЯрдирд╛рдУрдВ рдХрд╛ рднреЗрдЬрдирд╛ HTTP рдкрд░ рдЪрд▓рд╛ рдЧрдпрд╛, рдФрд░ рд╕рдВрддрд░реА рд╕реЗрд╡рд╛ рдиреЗ рдХреЗрд╡рд▓ HTTPS рдХреЛ рд╕реБрдирд╛ред HTTP рд╕реЗ HTTPS рддрдХ рдПрдХ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдкреБрд░рд╛рдиреЗ рдХреНрд▓рд╛рдЗрдВрдЯ (рд╕рд┐рдореНрдлрдиреА рдХреА рдУрд░ рдХреЛрдб) рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдерд╛, рдЬреЛ рдЖрдк рдЗрди рджрд┐рдиреЛрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
рдЗрддрд┐рд╣рд╛рд╕ рдирдВрдмрд░ 3ред RabbitMQ рдФрд░ рддреГрддреАрдп-рдкрдХреНрд╖ рдкреНрд░реЙрдХреНрд╕реА
рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рдИрд╡рд╛рдЯрд░ рдХреНрд▓рд╛рдЙрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирдХрдж рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рдИрд╡реЙрдЯрд░ рд╕реЗ POST рдЕрдиреБрд░реЛрдз рд╕реАрдзреЗ RabbitMQ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ - WebSocket рдХрдиреЗрдХреНрд╢рди рдкрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд
STOMP рдкреНрд▓рдЧрдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред
рдбреЗрд╡рд▓рдкрд░реНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдиреЗ рдкреЛрд╕реНрдЯрдореИрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░реАрдХреНрд╖рдг рдЕрдиреБрд░реЛрдз рдХрд┐рдП рдФрд░
200 OK
рдХреА рдЕрдкреЗрдХреНрд╖рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рдХреАрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреНрд▓рд╛рдЙрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдиреЗ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд
405 Method Not Allowed
ред
200 рдареАрдХ рд╣реИ source: kubernetes namespace: kube-nginx-ingress host: kube-node-2 pod_name: nginx-2bpt7 container_name: nginx stream: stdout app: nginx controller-revision-hash: 5bdbfd564 pod-template-generation: 25 time: 2019-09-10T09:42:50+00:00 request_id: 1271dba228f0943ab2df0196ff0d7f67 user: client address: 100.200.300.400 protocol: HTTP/1.1 scheme: http method: POST host: rmq-review.kube-dev.client.domain path: /api/queues/vhost/queue.gen.eeeeffff111:1.onlinecassa:55556666/get request_query: referrer: user_agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36 content_kind: cacheable namespace: review ingress: stomp-ws service: rabbitmq service_port: stats vhost: rmq-review.kube-dev.client.domain location: / nginx_upstream_addr: 10.127.1.1:15672 nginx_upstream_bytes_received: 2538 nginx_upstream_response_time: 0.008 nginx_upstream_status: 200 bytes_received: 757 bytes_sent: 1254 request_time: 0 status: 200 upstream_response_time: 0 upstream_retries: 0
405 рд╡рд┐рдзрд┐ рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ source: kubernetes namespace: kube-nginx-ingress host: kube-node-1 pod_name: nginx-4xx6h container_name: nginx stream: stdout app: nginx controller-revision-hash: 5bdbfd564 pod-template-generation: 25 time: 2019-09-10T09:46:26+00:00 request_id: b8dd789604864c95b4af499ed6805630 user: client address: 200.100.300.400 protocol: HTTP/1.1 scheme: http method: POST host: rmq-review.kube-dev.client.domain path: /api/queues/vhost/queue.gen.ef7fb93387ca9b544fc1ecd581cad4a9:1.onlinecassa:55556666/get request_query: referrer: user_agent: ru.evotor.proxy/37 content_kind: cache-headers-not-present namespace: review ingress: stomp-ws service: rabbitmq service_port: stats vhost: rmq-review.kube-dev.client.domain location: / nginx_upstream_addr: 10.127.1.1:15672 nginx_upstream_bytes_received: 134 nginx_upstream_response_time: 0.004 nginx_upstream_status: 405 bytes_received: 878 bytes_sent: 137 request_time: 0 status: 405 upstream_response_time: 0 upstream_retries: 0
рдПрд╡реЙрдЯрд░ рд╕реЗ Tcpdump рдЕрдиреБрд░реЛрдз 200.100.300.400.21519 > 100.200.400.300: Flags [P.], cksum 0x8e29 (correct), seq 1:879, ack 1, win 221, options [nop,nop,TS val 2313007107 ecr 79097074], length 878: HTTP, length: 878 POST /api/queues//vhost/queue.gen.ef7fb93387ca9b544fc1ecd581cad4a9:1.onlinecassa:55556666/get HTTP/1.1 device-model: ST-5 device-os: android Accept-Encoding: gzip content-type: application/json; charset=utf-8 connection: close accept: application/json x-original-forwarded-for: 10.11.12.13 originhost: rmq-review.kube-dev.client.domain x-original-uri: /api/v2/apps/e114-aaef-bbbb-beee-abadada44ae/requests x-scheme: https accept-encoding: gzip user-agent: ru.evotor.proxy/37 Authorization: Basic X-Evotor-Store-Uuid: 20180417-73DC-40C9-80B7-00E990B77D2D X-Evotor-Device-Uuid: 20190909-A47B-40EA-806A-F7BC33833270 X-Evotor-User-Id: 01-000000000147888 Content-Length: 58 Host: rmq-review.kube-dev.client.domain {"count":1,"encoding":"auto","ackmode":"ack_requeue_true"}[!http] 12:53:30.095385 IP (tos 0x0, ttl 64, id 5512, offset 0, flags [DF], proto TCP (6), length 52) 100.200.400.300:80 > 200.100.300.400.21519: Flags [.], cksum 0xfa81 (incorrect -> 0x3c87), seq 1, ack 879, win 60, options [nop,nop,TS val 79097122 ecr 2313007107], length 0 12:53:30.096876 IP (tos 0x0, ttl 64, id 5513, offset 0, flags [DF], proto TCP (6), length 189) 100.200.400.300:80 > 200.100.300.400.21519: Flags [P.], cksum 0xfb0a (incorrect -> 0x03b9), seq 1:138, ack 879, win 60, options [nop,nop,TS val 79097123 ecr 2313007107], length 137: HTTP, length: 137 HTTP/1.1 405 Method Not Allowed Date: Tue, 10 Sep 2019 10:53:30 GMT Content-Length: 0 Connection: close allow: HEAD, GET, OPTIONS
Tcpdump рдХрд░реНрд▓ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЕрдиреБрд░реЛрдз 777.10.74.11.61211 > 100.200.400.300:80: Flags [P.], cksum 0x32a8 (correct), seq 1:397, ack 1, win 2052, options [nop,nop,TS val 734012594 ecr 4012360530], length 396: HTTP, length: 396 POST /api/queues/%2Fvhost/queue.gen.ef7fb93387ca9b544fc1ecd581cad4a9:1.onlinecassa:55556666/get HTTP/1.1 Host: rmq-review.kube-dev.client.domain User-Agent: curl/7.54.0 Authorization: Basic = Content-Type: application/json Accept: application/json Content-Length: 58 {"count":1,"ackmode":"ack_requeue_true","encoding":"auto"}[!http] 12:40:11.001442 IP (tos 0x0, ttl 64, id 50844, offset 0, flags [DF], proto TCP (6), length 52) 100.200.400.300:80 > 777.10.74.11.61211: Flags [.], cksum 0x2d01 (incorrect -> 0xfa25), seq 1, ack 397, win 59, options [nop,nop,TS val 4012360590 ecr 734012594], length 0 12:40:11.017065 IP (tos 0x0, ttl 64, id 50845, offset 0, flags [DF], proto TCP (6), length 2621) 100.200.400.300:80 > 777.10.74.11.61211: Flags [P.], cksum 0x370a (incorrect -> 0x6872), seq 1:2570, ack 397, win 59, options [nop,nop,TS val 4012360605 ecr 734012594], length 2569: HTTP, length: 2569 HTTP/1.1 200 OK Date: Tue, 10 Sep 2019 10:40:11 GMT Content-Type: application/json Content-Length: 2348 Connection: keep-alive Vary: Accept-Encoding cache-control: no-cache vary: accept, accept-encoding, origin
рдПрдХ рдЗрдВрдЬреАрдирд┐рдпрд░ рдХреА рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдЖрдВрдЦ рддреБрд░рдВрдд рдЕрдВрддрд░ рджреЗрдЦрддреА рд╣реИ:
- рдХрд░реНрд▓:
POST /api/queues/%2FclientтАж
- рдПрд╡реЙрдЯрд░:
POST /api/queues//clientтАж
рдХреНрд╡реАрдиреНрд╕ POST /api/queues//clientтАж
рдмрд╛рдд рдпрд╣ рдереА рдХрд┐ рдПрдХ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ
%2Fvhost
рд▓рд┐рдП)
//vhost
, рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ -
%2Fvhost
, рдЬреЛ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ:
# rabbitmqctl list_vhosts Listing vhosts ... /vhost
рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ RabbitMQ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ
рдореБрджреНрджреЗ рдореЗрдВ, рдбреЗрд╡рд▓рдкрд░ рдмрддрд╛рддреЗ рд╣реИрдВ:
рд╣рдо%-рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдпрд╣ URL рдкрде рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХрд╛ рдПрдХ рдорд╛рдирдХ рддрд░реАрдХрд╛ рд╣реИ рдФрд░ рдЙрдореНрд░ рдХреЗ рд▓рд┐рдП рд░рд╣рд╛ рд╣реИред рдпрд╣ рдорд╛рдирдХрд░ рдХрд┐ HTTP- рдЖрдзрд╛рд░рд┐рдд рдЯреВрд▓ рдореЗрдВ%-рдХреЛрдбрд┐рдВрдЧ рдЪрд▓реА рдЬрд╛рдПрдЧреА рдХреНрдпреЛрдВрдХрд┐ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдРрд╕реЗ URL рдкрдереЛрдВ рдХреЛ "рд╕рдмрд╕реЗ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг" рдорд╛рдирд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдврд╛рдБрдЪрд╛ рд╢реЙрд░реНрдЯрд╕рд╛рдЗрдб рдФрд░ рднреЛрд▓рд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд░реНрдЪреБрдЕрд▓ рд╣реЛрд╕реНрдЯ рдирд╛рдо рдХреЛ рдХрд┐рд╕реА рднреА рдорд╛рди рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЬреИрд╕реЗ рдХрд┐ рд╡рд╣ рдЬреЛ рд╕реНрд▓реИрд╢ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд░реНрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ% -encoding рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ) рдФрд░ рдХрдо рд╕реЗ рдХрдо RabbitMQ рдХреА Pivotal BOSH рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд╕рд╛рде, рд╡реИрд╕реЗ рднреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд░реНрдЪреБрдЕрд▓ рд╣реЛрд╕реНрдЯ рдХреЛ рдЕрд╡рд╕рд╛рджрдЧреНрд░рд╕реНрдд рд╕рдордп рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред
рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рдорд╛рд░реЗ рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдХреА рдЖрдЧреЗ рдХреА рднрд╛рдЧреАрджрд╛рд░реА рдХреЗ рдмрд┐рдирд╛ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдИрд╡рд╛рдЯрд░ рдХреА рдУрд░ рд╕реЗ рдЙрдирд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж)ред
рдЗрддрд┐рд╣рд╛рд╕ рдирдВрдмрд░ рекред PostgreSQL рдореЗрдВ рдЬреАрди
PostgreSQL рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рд╕реВрдЪрдХрд╛рдВрдХ рд╣реИ, рдЬрд┐рд╕реЗ рдЕрдХреНрд╕рд░ рднреБрд▓рд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдХрд╣рд╛рдиреА рдЖрд╡реЗрджрди рдореЗрдВ рдмреНрд░реЗрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрддреЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реБрдИред
рд╣рд╛рд▓ рдХреЗ рдПрдХ
рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╕рдордп рдПрдХ рдЕрдиреБрдорд╛рдирд┐рдд рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдерд╛ред рдФрд░ рдпрд╣рд╛рдБ рд╣рдорд╛рд░реЗ рдПрдкреАрдПрдо -
рдЕрдЯреИрдЯрд╕ - рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рд╕реБрдмрд╣ 10 рдмрдЬреЗ рдЙрд╕ рд╕рдордп рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реЛрддреА рд╣реИ рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдЦрд░реНрдЪ рдХрд░рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЕрдкреЗрдХреНрд╖рд┐рдд рдерд╛, рдХрд╛рд░рдг DBMS рдХреА рдзреАрдореА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред рд╣рдорд╛рд░реЗ рд▓рд┐рдП, рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдирд╛, рд╕рдорд╕реНрдпрд╛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдирд╛ рдФрд░ "рд╣реИрдВрдЧрд┐рдВрдЧ" рдЗрдВрдбреЗрдХреНрд╕ рдПрдХ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рджрд┐рдирдЪрд░реНрдпрд╛ рд╣реИред рд╣рдорд╛рд░реЗ
рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛
рдУрдХреЗрдореАрдЯрд░ рдЗрд╕рдореЗрдВ
рдмрд╣реБрдд рдорджрдж рдХрд░рддрд╛ рд╣реИ: рд╕рд░реНрд╡рд░реЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдФрд░
рдЬрд▓реНрджреА рд╕реЗ рдЕрдкрдирд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рджреЛрдиреЛрдВ рдорд╛рдирдХ рдкреИрдирд▓ рд╣реИрдВ - рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдореАрдЯреНрд░рд┐рдХ рдХреЗ рдЙрддреНрдкрд╛рджрди рдХреЗ рд╕рд╛рде:

рд╕реАрдкреАрдпреВ рд▓реЛрдб рдЧреНрд░рд╛рдл рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕реЗ рдПрдХ 100% рд▓реЛрдб рд╣реИред рдХреНрдпреЛрдВ? рдирдпрд╛ PostgreSQL рдкреИрдирд▓ рд╕рдВрдХреЗрдд рджреЗрдЧрд╛:

рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рддреБрд░рдВрдд рд╕реНрдкрд╖реНрдЯ рд╣реИ - рд╕реАрдкреАрдпреВ рдХрд╛ рдореБрдЦреНрдп рдЙрдкрднреЛрдХреНрддрд╛:
SELECT u.* FROM users u WHERE u.id = ? & u.field_1 = ? AND u.field_2 LIKE '%somestring%' ORDER BY u.id DESC LIMIT ?
рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдХреНрд╡реЗрд░реА рдХреА рдХрд╛рд░реНрдп рдпреЛрдЬрдирд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рд╕реЗ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдЪрдпрди рд╣реЛрддрд╛ рд╣реИ: рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ
id
рдФрд░
field_1
рджреНрд╡рд╛рд░рд╛ 70 рд╣рдЬрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдкреНрд░рд╛рдкреНрдд
field_1
, рдФрд░ рдлрд┐рд░ рдЙрдирдХреЗ рдмреАрдЪ
field_1
рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐
LIKE
рдПрдХ рд╕рдмреНрд╕реНрдЯреАрдЯреНрдпреВрдЯ рдЯреЗрдХреНрд╕реНрдЯ рдбреЗрдЯрд╛ рдХреА рдПрдХ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЬреЛ рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рдПрдХ рдЧрдВрднреАрд░ рдордВрджреА рдФрд░ CPU рд▓реЛрдб рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣рд╛рдВ рдЖрдк рд╕рд╣реА рд░реВрдк рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдЗрдВрдХрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдПрдХ рдЖрд╡реЗрджрди рддрд░реНрдХ рд╕реБрдзрд╛рд░ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдкреВрд░реНрдг-рдкрд╛рда рдЗрдВрдЬрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ...), рд▓реЗрдХрд┐рди рдкреБрди: рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕реЗ 15 рдорд┐рдирдЯ рдкрд╣рд▓реЗ рдЬрд▓реНрджреА рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред рдЙрд╕реА рд╕рдордп, рдЦреЛрдЬ рд╢рдмреНрдж рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИ (рдФрд░ рдПрдХ рдЕрд▓рдЧ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХреНрдпреЛрдВ рдирд╣реАрдВ? ..), рдЬреЛ рд▓рд╛рдЗрдиреЛрдВ рдХреА рдЗрдХрд╛рдЗрдпреЛрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрджрд┐ рд╣рдо рдЗрд╕ рдкрд╛рда рдХреНрд╖реЗрддреНрд░ рдкрд░ рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЕрдиреНрдп рд╕рднреА рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗредрдЕрдВрддрд┐рдо рд╡рд░реНрддрдорд╛рди рд╕рдорд╛рдзрд╛рди
field_2
рд▓рд┐рдП GIN рд╕реВрдЪрдХрд╛рдВрдХ
field_2
ред рдЙрд╕ рджрд┐рди рдХрд╛ рдирд╛рдпрдХ - рд╡рд╣реА "рдЬрд┐рдиреНрди"ред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, GIN рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рд╣реИ рдЬреЛ рдкреВрд░реНрдг-рдкрд╛рда рдЦреЛрдЬ рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рдЧреБрдгрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рддреЗрдЬ рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдЗрд╕ рдЕрджреНрднреБрдд рд╕рд╛рдордЧреНрд░реА рдореЗрдВ ред

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рд╕рд░рд▓ рдСрдкрд░реЗрд╢рди рдиреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рднрд╛рд░ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА, рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде - рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд▓рд┐рдП рдкреИрд╕реЗ рдмрдЪрд╛рдПред
рдЗрддрд┐рд╣рд╛рд╕ рдирдВрдмрд░ релред Nginx рдореЗрдВ рдХреИрд╢рд┐рдВрдЧ s3
S3- рд╕рдВрдЧрдд рдХреНрд▓рд╛рдЙрдб рд╕реНрдЯреЛрд░реЗрдЬ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкрд░ рджреГрдврд╝рддрд╛ рд╕реЗ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдпрд╛ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЫрд╡рд┐ рднрдВрдбрд╛рд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЕрдореЗрдЬрд╝реЕрди рдПрд╕ 3 рдПрдХ рдмрдврд╝рд┐рдпрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред рднрдВрдбрд╛рд░рдг рдХреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдФрд░ рдЙрдЪреНрдЪ рдбреЗрдЯрд╛ рдЙрдкрд▓рдмреНрдзрддрд╛ (рдФрд░ "рдмрд╛рдбрд╝" рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреА рдХрдореА) рдордиреЛрд░рдо рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрднреА-рдХрднреА рдкреИрд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП - рдХреНрдпреЛрдВрдХрд┐ рдЖрдорддреМрд░ рдкрд░ рдПрд╕ 3 рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдЕрдиреБрд░реЛрдзреЛрдВ рдФрд░ рдпрд╛рддрд╛рдпрд╛рдд рдХреЗ рд▓рд┐рдП рдЬрд╛рддрд╛ рд╣реИ - рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рднрдВрдбрд╛рд░рдг рдХреЗ рд╕рд╛рдордиреЗ рдПрдХ рдХреИрд╢рд┐рдВрдЧ рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИред рдпрд╣ рд╡рд┐рдзрд┐ рд▓рд╛рдЧрддреЛрдВ рдХреЛ рдХрдо рдХрд░ рджреЗрдЧреА рдЬрдм рдпрд╣ рдЖрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрд╡рддрд╛рд░ рдХреЛ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкреГрд╖реНрда рдкрд░ рдХрдИ рд╣реИрдВред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ nginx рд▓реЗрдиреЗ рд╕реЗ рдЖрд╕рд╛рди рд╣реИ рдФрд░ рдХреИрд╢рд┐рдВрдЧ, рдкреБрдирд░реНрдореВрд▓реНрдпрд╛рдВрдХрди, рдкреГрд╖реНрдарднреВрдорд┐ рдЕрджреНрдпрддрди рдФрд░ рдЕрдиреНрдп рд▓рд╛рдареА рдХреЗ рд╕рд╛рде рдкрд░рджреЗ рдХреЗ рдкреАрдЫреЗ рд╕реЗрдЯ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ? рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрд╣реАрдВ рдФрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдХреБрдЫ рдмрд╛рд░реАрдХрд┐рдпрд╛рдВ рд╣реИрдВ ...
рдХреИрд╢рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдРрд╕реА рд╕рдореАрдкрддрд╛ рдХрд╛ рдЕрдиреБрдорд╛рдирд┐рдд рд╡рд┐рдиреНрдпрд╛рд╕ рдЗрд╕ рддрд░рд╣ рд╕реЗ рджреЗрдЦрд╛ рдЧрдпрд╛:
proxy_cache_key $uri; proxy_cache_methods GET HEAD; proxy_cache_lock on; proxy_cache_revalidate on; proxy_cache_background_update on; proxy_cache_use_stale updating error timeout invalid_header http_500 http_502 http_503 http_504; proxy_cache_valid 200 1h; location ~ ^/(?<bucket>avatars|images)/(?<filename>.+)$ { set $upstream $bucket.s3.amazonaws.com; proxy_pass http://$upstream/$filename; proxy_set_header Host $upstream; proxy_cache aws; proxy_cache_valid 200 1h; proxy_cache_valid 404 60s; }
рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛: рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╕рдм рдХреБрдЫ рдХреИрд╢ рдХреЗ рд╕рд╛рде рдареАрдХ рдерд╛ ... рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдПрд╕ 3 рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╕рд╛рдордиреЗ рдЖрдИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ,
aws-sdk-php рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдиреЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ред рдиреЗрдЧрдиреЗрдХреНрд╕ рд▓реЙрдЧ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдиреЗ HEAD рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП 403 рдХреЛрдб рд▓реМрдЯрд╛рдпрд╛, рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддреНрд░реБрдЯрд┐ рдереА:
SignatureDoesNotMatch
ред рдЬрдм рд╣рдордиреЗ рджреЗрдЦрд╛ рдХрд┐ рдирдЧреНрдиреЗрдХреНрд╕ рдиреЗ рдКрдкрд░ рдХреА рддрд░рдл рдПрдХ GET рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рд╕рдм рдХреБрдЫ рдЬрдЧрд╣ рдореЗрдВ рдЧрд┐рд░ рдЧрдпрд╛ред
рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдПрд╕ 3 рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕рд░реНрд╡рд░ рдЗрд╕ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред рд╕рд░рд▓ рд╕рдореАрдкрддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рдЕрдиреБрд░реЛрдз рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдкрд╣реБрдВрдЪрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрдм рдХреИрд╢рд┐рдВрдЧ рд╕рдХреНрд╖рдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ nginx рдмреИрдХрдПрдВрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд╛ рдЕрдиреБрдХреВрд▓рди рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ рдФрд░ GET рдХреЗ рд╕рд╛рде HEAD рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рддрд░реНрдХ рд╕рд░рд▓ рд╣реИ: рд╕рдВрдкреВрд░реНрдг рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдФрд░ рд╕рд╣реЗрдЬрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдФрд░ рдлрд┐рд░ рдХреИрд╢ рд╕реЗ рд╕рднреА HEAD рдЕрдиреБрд░реЛрдз рднреАред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╣реИред
рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рджреЛ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ:
- рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ S3 рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рди рдЪрд▓рд╛рдПрдВ;
- рдпрджрд┐ рдпрд╣ "рдЖрд╡рд╢реНрдпрдХ" рд╣реИ, рддреЛ
proxy_cache_convert_head
рд╡рд┐рдХрд▓реНрдк рдмрдВрдж рдХрд░реЗрдВ рдФрд░ рдХреИрд╢ рдХреБрдВрдЬреА рдореЗрдВ $request_method
рдЬреЛрдбрд╝реЗрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, nginx HEAD рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ "рдЬреИрд╕рд╛ рд╣реИ" рднреЗрдЬрддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрддрд╛ рд╣реИред
рдЗрддрд┐рд╣рд╛рд╕ рдирдВрдмрд░ ремред DDoS рдФрд░ Google рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд╛рдордЧреНрд░реА
рд░рд╡рд┐рд╡рд╛рд░ рдХреА рд╢рд╛рдо рдЕрдЪрд╛рдирдХ рддрдХ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЪрд┐рддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░рддреА рдереА! - рдПрдЬ рд╕рд░реНрд╡рд░ рдкрд░ рдХреИрд╢ рдЕрдорд╛рдиреНрдп рдХреА рдХрддрд╛рд░ рдирд╣реАрдВ рдмрдврд╝реА рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЯреНрд░реИрдлрд╝рд┐рдХ рджреЗрддреА рд╣реИред рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдЕрдЬреАрдм рд▓рдХреНрд╖рдг рд╣реИ: рдЖрдЦрд┐рд░рдХрд╛рд░, рдХреИрд╢ рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡ рд╕реЗ рдмрдВрдзрд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧ рдХреА рдЧрдИ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдореЗрдВ рдХреИрд╢ рдлреНрд▓рд╢ рдХрд░рдирд╛ рдПрдХ рд╕рд╕реНрддрд╛ рдСрдкрд░реЗрд╢рди рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рддреНрд░реБрдЯрд┐ рдХреЗрд╡рд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдЪреНрдЪ рднрд╛рд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддреА рд╣реИред рдЗрд╕ рддрдереНрдп рдХреА рдкреБрд╖реНрдЯрд┐ рдХреА рдЧрдИ рдереА рдХрд┐ рдПрдХ рд╣реА рд╕рд░реНрд╡рд░ 500 рддреНрд░реБрдЯрд┐рдпреЛрдВ
(рдиреАрдЪреЗ рдХреЗ рдЧреНрд░рд╛рдл рдореЗрдВ рд▓рд╛рд▓ рд░реЗрдЦрд╛ рд╕реНрдкрд╛рдЗрдХреНрд╕) рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред

рдЗрд╕ рддрд░рд╣ рдХреЗ рддреЗрдЬ рдЙрдЫрд╛рд▓ рдХреЗ рдХрд╛рд░рдг рд╕реАрдкреАрдпреВ рдУрд╡рд░рд░рди рд╣реЛ рдЧрдпрд╛:

рдПрдХ рддреНрд╡рд░рд┐рдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЕрдиреБрд░реЛрдз рдореБрдЦреНрдп рдбреЛрдореЗрди рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдЖрдП рдереЗ, рд▓реЗрдХрд┐рди рд▓реЙрдЧ рд╕реЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рд╡реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рдореЗрдВ рд╣реЛ рдЧрдП рд╣реИрдВред рд╕рд╛рде рд╣реА, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдХрдИ рдЕрдореЗрд░рд┐рдХреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд░реВрд╕реА рд╕рдВрд╕рд╛рдзрди рдореЗрдВ рдЖрдП рдереЗред рдРрд╕реЗ рд╣рд╛рд▓рд╛рдд рд╣рдореЗрд╢рд╛ рддреБрд░рдВрдд рд╕рд╡рд╛рд▓ рдЦрдбрд╝реЗ рдХрд░рддреЗ рд╣реИрдВред
рдирдЧреНрдиреЗрдХреНрд╕ рд▓реЙрдЧ рд╕реЗ рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рдмрддрд╛рдпрд╛ рдХрд┐ рд╣рдо рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдмреЙрдЯрдиреЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ:
35.222.30.127 US [15/Sep/2019:21:40:00 +0300] GET "http://example.ru/?ITPDH=XHJI" HTTP/1.1 301 178 "http://example.ru/ORQHYGJES" "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)" "-" "upcache=-" "upaddr=-" "upstatus=-" "uplen=-" "uptime=-" spdy="" "loc=wide-closed.example.ru.undef" "rewrited=/?ITPDH=XHJI" "redirect=http://www.example.ru/?ITPDH=XHJI" ancient=1 cipher=- "LM=-;EXP=-;CC=-" 107.178.215.0 US [15/Sep/2019:21:40:00 +0300] GET "http://example.ru/?REVQSD=VQPYFLAJZ" HTTP/1.1 301 178 "http://www.usatoday.com/search/results?q=MLAJSBZAK" "Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)" "-" "upcache=-" "upaddr=-" "upstatus=-" "uplen=-" "uptime=-" spdy="" "loc=wide-closed.example.ru.undef" "rewrited=/?REVQSD=VQPYFLAJZ" "redirect=http://www.example.ru/?REVQSD=VQPYFLAJZ" ancient=1 cipher=- "LM=-;EXP=-;CC=-" 107.178.215.0 US [15/Sep/2019:21:40:00 +0300] GET "http://example.ru/?MPYGEXB=OMJ" HTTP/1.1 301 178 "http://engadget.search.aol.com/search?q=MIWTYEDX" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)" "-" "upcache=-" "upaddr=-" "upstatus=-" "uplen=-" "uptime=-" spdy="" "loc=wide-closed.example.ru.undef" "rewrited=/?MPYGEXB=OMJ" "redirect=http://www.example.ru/?MPYGEXB=OMJ" ancient=1 cipher=- "LM=-;EXP=-;CC=-"
рдПрдХ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдкреИрдЯрд░реНрди рд▓реЙрдЧ рдореЗрдВ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
- рд╕рдЪреНрдЪрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдПрдЬреЗрдВрдЯ;
- рдХреИрд╢ рдореЗрдВ рдЬрд╛рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ GET рддрд░реНрдХ рдХреЗ рд╕рд╛рде рд░реВрдЯ URL рдХрд╛ рдЕрдиреБрд░реЛрдз;
- рд╕рдВрджрд░реНрднрд┐рдд рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЕрдиреБрд░реЛрдз рдПрдХ рдЦреЛрдЬ рдЗрдВрдЬрди рд╕реЗ рдЖрдпрд╛ рд╣реИред
рд╣рдо рдкрддреЗ рдПрдХрддреНрд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреА рд╕рдВрдмрджреНрдзрддрд╛ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ - рд╡реЗ рд╕рднреА
googleusercontent.com
, рджреЛ рд╕рдмрдиреЗрдЯ (107.178.192.0/18 рдФрд░ 34.64.0.0/10) рдХреЗ рд╕рд╛рдеред рдЗрди рд╕рдмрдиреЗрдЯ рдореЗрдВ GCE рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд╕реЗрд╡рд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬреИрд╕реЗ рдкреЗрдЬ рдЯреНрд░рд╛рдВрд╕рд▓реЗрд╢рдиред
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдорд▓рд╛ рдЗрддрдиреЗ рд▓рдВрдмреЗ рд╕рдордп (рд▓рдЧрднрдЧ рдПрдХ рдШрдВрдЯреЗ) рддрдХ рдирд╣реАрдВ рдЪрд▓рд╛ рдФрд░ рдзреАрд░реЗ-рдзреАрд░реЗ рдХрдо рд╣реЛ рдЧрдпрд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Google рдХреЗ рдЕрдВрджрд░ рдХреЗ рд╕реБрд░рдХреНрд╖рд╛рддреНрдордХ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдХреЛ "рд╕реНрд╡рдпрдВ рджреНрд╡рд╛рд░рд╛" рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдпрд╣ рд╣рдорд▓рд╛ рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдкреНрд░рд╢реНрди рдЙрдард╛рдП рдЧрдП:
- рдПрдВрдЯреА-рдбреАрдбреЛрд╕ рдХрд╛рдо рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛? рдПрдХ рдмрд╛рд╣рд░реА рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд рдЕрдиреБрд░реЛрдз рднреЗрдЬрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдкрддреЗ рдмрд╣реБрдд рдереЗ ...
- рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЦреБрдж рдХреЛ рдЗрд╕рд╕реЗ рдХреИрд╕реЗ рдмрдЪрд╛рдПрдВ? рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рднреМрдЧреЛрд▓рд┐рдХ рдЖрдзрд╛рд░ рдкрд░ рдкрд╣реБрдВрдЪ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдк рднреА рд╕рдВрднрд╡ рд╣реИрдВред
рдкреБрдирд╢реНрдЪ
рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдореЗрдВ рднреА рдкрдврд╝реЗрдВ: