เบชเบฐเบเบฒเบเบเบต Habr, เบเปเบญเบเบเบทเป Ilya, เบเปเบญเบเปเบฎเบฑเบเบงเบฝเบเบขเบนเปเปเบเบเบตเบกเบเบฒเบเปเบงเบเบตเบเบตเป Exness. เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเบฐเบเบฒเปเบฅเบฐเบเบฐเบเบดเบเบฑเบเบญเบปเบเบเบฐเบเบญเบเบเบทเปเบเบเบฒเบเปเบเบเบฅเปเบฒเบเบซเบผเบฑเบเบเบตเปเบเบตเบกเบเบฒเบเบเบฑเบเบเบฐเบเบฒเบเบฐเบฅเบดเบเบเบฐเบเบฑเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเป.
เปเบเบเบปเบเบเบงเบฒเบกเบเบตเป, เบเปเบญเบเบขเบฒเบเปเบเปเบเบเบฑเบเบเบฐเบชเบปเบเบเบฒเบเบเบญเบเบเปเบญเบเปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเบฑเบเปเบเปเบฅเบขเบต SNI (ESNI) เบเบตเปเบเบทเบเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบเปเบเปเบเบเบชเปเบฒเบเบเบทเปเบเบเบฒเบเบเบญเบเปเบงเบฑเบเปเบเบเปเบชเบฒเบเบฒเบฅเบฐเบเบฐ.

เบเบฒเบเบเปเบฒเปเบเปเปเบเบฑเบเปเบเปเบฅเบขเบตเบเบตเปเบเบฐเปเบเบตเปเบกเบฅเบฐเบเบฑเบเบเบงเบฒเบกเบเบญเบเปเบเปเบเปเบงเบฅเบฒเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเปเบงเบฑเบเปเบเบเปเบชเบฒเบเบฒเบฅเบฐเบเบฐเปเบฅเบฐเบเบฐเบเบดเบเบฑเบเบเบฒเบกเบกเบฒเบเบเบฐเบเบฒเบเบเบงเบฒเบกเบเบญเบเปเบเบเบฒเบเปเบเบเบตเปเบเปเบฅเบดเบชเบฑเบเปเบเปเบฎเบฑเบเบฎเบญเบเปเบญเบปเบฒ.
เบเปเบญเบเบญเบทเปเบ เปเบปเบ, เบเปเบญเบเบขเบฒเบเบเบตเปเปเบซเปเปเบซเบฑเบเบงเปเบฒเปเบเบฑเบเปเบเปเบฅเบขเบตเบเปเปเปเบเปเบกเบฒเบเบเบฐเบเบฒเบเปเบฅเบฐเบเบฑเบเบขเบนเปเปเบเบฎเปเบฒเบ, เปเบเป CloudFlare เปเบฅเบฐ Mozilla เบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบกเบฑเบเปเบฅเปเบง (เปเบ ). เบเบตเปเบเบฐเบเบธเปเบเบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบฅเบญเบเบเบฑเปเบเบเปเบฒเบง.
เบเบดเบเบเบญเบเบเบดเบเบชเบฐเบเบต
ESNI เปเบเบฑเบเบชเปเบงเบเบเบฐเบซเบเบฒเบเบเบญเบเปเบเปเบเบเบญเบ TLS 1.3 เบเบตเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบ SNI เปเบเบเปเปเบเบงเบฒเบก "เบชเบฐเบเบฒเบเบเบตเบฅเบนเบเบเปเบฒ" TLS handshake. เบเบตเปเปเบกเปเบเบชเบดเปเบเบเบตเป Client Hello เปเบเบดเปเบเบเบทเบงเปเบฒเบกเบตเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ ESNI (เปเบเบเบเบตเปเบเบฐเปเบเบฑเบ SNI เบเบปเบเบเบฐเบเบดเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบซเบฑเบ ESNI):

เปเบเบทเปเบญเปเบเป ESNI, เบเปเบฒเบเบเปเบญเบเบเบฒเบเบชเบฒเบกเบญเบปเบเบเบฐเบเบญเบ:
- DNS;
- เบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบฅเบนเบเบเปเบฒ;
- เบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเปเบฒเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ.
DNS
เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเบตเปเบกเบชเบญเบเบเบฑเบเบเบถเบ DNS - Aเปเบฅเบฐ TXT (เบเบฑเบเบเบถเบ TXT เบกเบตเบฅเบฐเบซเบฑเบเบชเบฒเบเบฒเบฅเบฐเบเบฐเบเบตเปเบฅเบนเบเบเปเบฒเบชเบฒเบกเบฒเบเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบ SNI) - เปเบเบดเปเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเป. เบเบญเบเบเบฒเบเบเบฑเปเบ, เบเปเบญเบเบกเบตเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ DoH (DNS เบเปเบฒเบ HTTPS) เปเบเบฒเบฐเบงเปเบฒเบฅเบนเบเบเปเบฒเบเบตเปเบกเบตเบขเบนเป (เปเบเบดเปเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเป) เบเปเปเปเบเบตเบเปเบเปเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ ESNI เปเบเบเบเปเปเบกเบต DoH. เบเบตเปเปเบกเปเบเปเบซเบเบเบปเบ, เปเบเบฒเบฐเบงเปเบฒ ESNI เบซเบกเบฒเบเปเบเบดเบเบเบฒเบเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบเบเบทเปเบเบญเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบฒเบฅเบฑเบเปเบเบปเปเบฒเปเบเบดเบ, เบเบฑเปเบเปเบกเปเบ, เบกเบฑเบเบเปเปเบกเบตเบเบงเบฒเบกเบซเบกเบฒเบเบเบตเปเบเบฐเปเบเบปเปเบฒเปเบเบดเบ DNS เบเปเบฒเบ UDP. เบเบดเปเบเปเบเบเบงเปเบฒเบเบฑเปเบ, เบเบฒเบเบเปเบฒเปเบเป เบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเปเบเบทเปเบญเบเปเบญเบเบเบฑเบเบเบฒเบเปเบเบกเบเบต cache เปเบเบฑเบเบเบดเบเปเบเบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบตเป.
เบเบฐเบเบธเบเบฑเบเบกเบตเบขเบนเป , เปเบเบเบฑเบเบเบฒเบเบงเบเปเบเบปเบฒ:
CloudFlare (เบเบงเบเปเบเบดเปเบเบเบปเบงเบเปเบญเบเปเบงเบฑเบเบเบญเบเบเปเบญเบ โ SNI เบเบตเปเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบ โ เบฎเบฝเบเบฎเบนเปเปเบเบตเปเบกเปเบเบตเบก) เบงเปเบฒเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบญเบเบเบงเบเปเบเบปเบฒเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ ESNI เปเบฅเปเบง, เบเบฑเปเบเปเบกเปเบ, เบชเปเบฒเบฅเบฑเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ CloudFlare เปเบ DNS เบเบงเบเปเบฎเบปเบฒเบกเบตเบขเปเบฒเบเบซเบเปเบญเบเบชเบญเบเบเบฑเบเบเบถเบ - A เปเบฅเบฐ TXT. เปเบเบเบปเบงเบขเปเบฒเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเปเบเบงเบเปเบฎเบปเบฒเบชเบญเบเบเบฒเบก Google DNS (เบเปเบฒเบ HTTPS):
ะ เปเบเบปเปเบฒ:
curl 'https://dns.google.com/resolve?name=www.cloudflare.com&type=A'
-s -H 'accept: application/dns+json'
{
"Status": 0,
"TC": false,
"RD": true,
"RA": true,
"AD": true,
"CD": false,
"Question": [
{
"name": "www.cloudflare.com.",
"type": 1
}
],
"Answer": [
{
"name": "www.cloudflare.com.",
"type": 1,
"TTL": 257,
"data": "104.17.210.9"
},
{
"name": "www.cloudflare.com.",
"type": 1,
"TTL": 257,
"data": "104.17.209.9"
}
]
}
TXT เบเบฑเบเบเบถเบ, เบเบฒเบเบฎเปเบญเบเบเปเปเบกเปเบเบชเปเบฒเบเบเบทเปเบเบเบฒเบกเปเบกเปเปเบเบ _esni.FQDN:
curl 'https://dns.google.com/resolve?name=_esni.www.cloudflare.com&type=TXT'
-s -H 'accept: application/dns+json'
{
"Status": 0,
"TC": false,
"RD": true,
"RA": true,
"AD": true,
"CD": false,
"Question": [
{
"name": "_esni.www.cloudflare.com.",
"type": 16
}
],
"Answer": [
{
"name": "_esni.www.cloudflare.com.",
"type": 16,
"TTL": 1799,
"data": ""/wEUgUKlACQAHQAg9SiAYQ9aUseUZr47HYHvF5jkt3aZ5802eAMJPhRz1QgAAhMBAQQAAAAAXtUmAAAAAABe3Q8AAAA=""
}
],
"Comment": "Response from 2400:cb00:2049:1::a29f:209."
}
เบเบฑเปเบเบเบฑเปเบ, เบเบฒเบเบเบฑเบเบชเบฐเบเบฐ DNS, เบเบงเบเปเบฎเบปเบฒเบเบงเบเปเบเป DoH (เบกเบฑเบเบเบฑเบ DNSSEC) เปเบฅเบฐเปเบเบตเปเบกเบชเบญเบเบฅเบฒเบเบเบฒเบ.
เบเบฒเบเบเปเบงเบเปเบซเบผเบทเบญเบฅเบนเบเบเปเบฒ
เบเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเบฒเบฅเบฑเบเปเบงเบปเปเบฒเบเปเบฝเบงเบเบฑเบเบเบปเบงเบเปเบญเบเปเบงเบฑเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบเปเบงเบฅเบฒเบเบตเป . เบเบตเปเปเบกเปเบเบเปเบฒเปเบเบฐเบเปเบฒเบเปเบฝเบงเบเบฑเบเบงเบดเบเบตเบเบฒเบเปเบเบตเบเปเบเปเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ ESNI เปเบฅเบฐ DoH เปเบ FireFox. เบซเบผเบฑเบเบเบฒเบเบเบตเปเบเบปเบงเบเปเบญเบเปเบงเบฑเบเบเบทเบเบเบฑเปเบเบเปเบฒ, เบเบงเบเปเบฎเบปเบฒเบเบงเบเบเบฐเปเบซเบฑเบเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบเบฑเปเบเบเบตเป:

เปเบเบทเปเบญเบเบงเบเปเบเบดเปเบเบเบปเบงเบเปเบญเบเปเบงเบฑเบ.
เปเบเปเบเบญเบ, TLS 1.3 เบเปเบญเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ ESNI, เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒ ESNI เปเบกเปเบเบเบฒเบเบเบฐเบซเบเบฒเบเปเบเบซเบฒ TLS 1.3.
เบชเปเบฒเบฅเบฑเบเบเบธเบเบเบฐเบชเบปเบเบเบญเบเบเบฒเบเบเบปเบเบชเบญเบ backend เบเบฑเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ ESNI, เบเบงเบเปเบฎเบปเบฒเปเบเปเบเบฐเบเบดเบเบฑเบเบฅเบนเบเบเปเบฒเบเปเบฝเบงเบเบฑเบ go, เปเบเปเปเบเบตเปเบกเปเบเบตเบกเบเปเบฝเบงเบเบฑเบเบงเปเบฒเบเปเปเบกเบฒ.
เบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเปเบฒเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ
เปเบเบเบฑเบเบเบธเบเบฑเบ, ESNI เบเปเปเปเบเปเบฎเบฑเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเปเบเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบงเบฑเบเปเบเบเปเปเบเบฑเปเบ nginx / apache, เปเบฅเบฐเบญเบทเปเบเป, เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเบเบงเบเปเบเบปเบฒเปเบฎเบฑเบเบงเบฝเบเบเบฑเบ TLS เบเปเบฒเบ OpenSSL / BoringSSL, เปเบเบดเปเบเบเปเปเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ ESNI เบขเปเบฒเบเปเบเบฑเบเบเบฒเบเบเบฒเบ.
เบเบฑเปเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบชเบดเบเปเบเบชเปเบฒเบเบญเบปเบเบเบฐเบเบญเบเบเบฒเบเบซเบเปเบฒเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบญเบ (ESNI reverse proxy), เปเบเบดเปเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ TLS 1.3 termination เบเบฑเบ ESNI เปเบฅเบฐ proxy HTTP(S) traffic เปเบเบซเบฒ upstream, เปเบเบดเปเบเบเปเปเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ ESNI. เบเบตเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเปเบเปเปเบเบฑเบเปเบเปเบฅเบขเบตเปเบเปเบเบเบชเปเบฒเบเบเบทเปเบเบเบฒเบเบเบตเปเบกเบตเบขเบนเปเปเบฅเปเบง, เปเบเบเบเปเปเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบเบญเบปเบเบเบฐเบเบญเบเบเบปเปเบเบเป - เบเบฑเปเบเปเบกเปเบ, เบเบฒเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบงเบฑเบเปเบเบเบฐเบเบธเบเบฑเบเบเบตเปเบเปเปเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ ESNI.
เปเบเบทเปเบญเบเบงเบฒเบกเบเบฑเบเปเบเบ, เบเบตเปเปเบกเปเบเปเบเบเบงเบฒเบ:

เบเปเบญเบเบชเบฑเบเปเบเบเบงเปเบฒเบเบปเบงเปเบเบเปเบเปเบเบทเบเบญเบญเบเปเบเบเบเปเบงเบเบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบเบขเบธเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเป TLS เปเบเบเบเปเปเบกเบต ESNI, เปเบเบทเปเบญเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบฅเบนเบเบเปเบฒเบเบตเปเบเปเปเบกเบต ESNI. เบเบญเบเบเบฒเบเบเบตเป, เปเบเบฃเปเบเบเปเบเบฒเบเบชเบทเปเบชเบฒเบเบเบฑเบเบเบฐเปเบชเบชเบฒเบกเบฒเบเปเบเบฑเบ HTTP เบซเบผเบท HTTPS เบเบตเปเบกเบตเบฅเบธเปเบ TLS เบเปเบณเบเบงเปเบฒ 1.3 (เบเปเบฒ upstream เบเปเปเบฎเบญเบเบฎเบฑเบ 1.3). เปเบเบเบเบฒเบเบเบตเปเปเบซเปเบเบงเบฒเบกเบเบทเบเบซเบเบธเปเบเบชเบนเบเบชเบธเบ.
เบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ ESNI เบเปเบฝเบงเบเบฑเบ go เบเบงเบเปเบฎเบปเบฒเบขเบทเบกเบเบฒเบ . เบเปเบฒเบเบฐเปเบเบปเปเบฒเบขเบฒเบเบเบฐเบชเบฑเบเปเบเบเปเบซเบฑเบเบเบฑเบเบเบตเบงเปเบฒเบเบฒเบเบเบฑเบเบเบฑเปเบเบเบฐเบเบดเบเบฑเบเบเบปเบงเบกเบฑเบเปเบญเบเปเบกเปเบเบเปเบญเบเบเปเบฒเบเบเปเปเบชเปเบฒเบเบฑเบ, เปเบเบฒเบฐเบงเปเบฒเบกเบฑเบเบเปเบฝเบงเบเปเบญเบเบเบฑเบเบเบฒเบเบเปเบฝเบเปเบเบเปเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบกเบฒเบเบเบฐเบเบฒเบ. crypto/tls เปเบฅเบฐโเบเบฑเปเบโเบเบฑเปเบโเบเบถเปเบโเบฎเบฝเบโเบฎเปเบญเบโเปเบซเป "patchingโ" GOROOT เบเปเบญเบโเบเบฒเบโเปเบฎเบกโเบเบธเบกเบเบธเบก.
เปเบเบทเปเบญเบชเปเบฒเบเบเบฐเปเบ ESNI เบเบงเบเปเบฎเบปเบฒเปเบเป (เบเบฑเบเปเบเบฑเบเบเบงเบฒเบกเบเบดเบเบเบญเบ CloudFlare). เบเบฐเปเบเปเบซเบผเบปเปเบฒเบเบตเปเบเบทเบเปเบเปเบชเบณเบฅเบฑเบเบเบฒเบเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบ/เบเบญเบเบฅเบฐเบซเบฑเบ SNI.
เบเบงเบเปเบฎเบปเบฒเปเบเปเบเบปเบเบชเบญเบเบเบฒเบเบชเปเบฒเบเปเบเบเปเบเป go 1.13 เปเบ Linux (Debian, Alpine) เปเบฅเบฐ MacOS.
เบชเบญเบเบชเบฒเบกเบเปเบฒเบเปเบฝเบงเบเบฑเบเบฅเบฑเบเบชเบฐเบเบฐเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบ
ESNI reverse proxy เปเบซเป metrics เปเบเบฎเบนเบเปเบเบ Prometheus, เปเบเบฑเปเบ: rps, upstream latency & response codes, failed/successful handshakes & TLS handshake. เบขเบนเป glance เบเปเบฒเบญเบดเบ, เบเบตเปเปเบเบดเปเบเบเบทเบงเปเบฒเบเบฝเบเบเปเบเบตเปเบเบฐเบเบฐเปเบกเบตเบเบงเบดเบเบตเบเบฒเบเบเบปเบงเปเบเบเบเบฑเบเบเบฒเบเบเบฑเบเบเบฒเบเบเบฐเบฅเบฒเบเบญเบ.
เบเบงเบเปเบฎเบปเบฒเบเบฑเบเปเบเปเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบปเบเบชเบญเบเบเบฒเบเปเบซเบผเบเบเปเบญเบเบเบฒเบเบเปเบฒเปเบเป. เบเบปเบเปเบเปเบฎเบฑเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเป:
wrk -t50 -c1000 -d360s 'https://esni-rev-proxy.npw:443' --timeout 15s
Running 6m test @ https://esni-rev-proxy.npw:443
50 threads and 1000 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 1.77s 1.21s 7.20s 65.43%
Req/Sec 13.78 8.84 140.00 83.70%
206357 requests in 6.00m, 6.08GB read
Requests/sec: 573.07
Transfer/sec: 17.28MB
เบเบงเบเปเบฎเบปเบฒเปเบเปเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบปเบเบชเบญเบเบเบฒเบเปเบซเบผเบเบเบตเปเบกเบตเบเบธเบเบเบฐเบเบฒเบเบเปเบฅเบดเบชเบธเบเปเบเบทเปเบญเบเบฝเบเบเบฝเบเปเบเบเบเบฒเบเปเบเบเปเบเป ESNI reverse proxy เปเบฅเบฐเบเปเปเบกเบต. เบเบงเบเปเบฎเบปเบฒ "เบเบญเบ" เบเบฒเบเบเบฐเบฅเบฒเบเบญเบเปเบเบเปเบญเบเบเบดเปเบเปเบเบทเปเบญเบเปเบฒเบเบฑเบ "เบเบฒเบเปเบเบเปเบเบ" เปเบเบญเบปเบเบเบฐเบเบญเบเบฅเบฐเบเบฑเบเบเบฒเบ.
เบเบฑเปเบเบเบฑเปเบ, เบเปเบงเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ ESNI เปเบฅเบฐ proxying เบเบฑเบ upstream เบเบฒเบ HTTP, เบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฑเบเบเบฐเบกเบฒเบ ~ 550 rps เบเบฒเบเบเบปเบงเบขเปเบฒเบเบซเบเบถเปเบ, เบเปเบงเบเบเบฒเบเบเปเบฅเบดเปเบเบ CPU / RAM เบชเบฐเปเบฅเปเบเบเบญเบ ESNI reverse proxy:
- เบเบฒเบเปเบเป CPU 80% (4 vCPU, เปเบฎเบช RAM 4 GB, Linux)
- 130 MB Mem RSS

เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฝเบเบเบฝเบ, RPS เบชเปเบฒเบฅเบฑเบ nginx upstream เบเบฝเบงเบเบฑเบเปเบเบเบเปเปเบกเบตเบเบฒเบเบชเบดเปเบเบชเบธเบ TLS (HTTP protocol) เปเบกเปเบ ~ 1100:
wrk -t50 -c1000 -d360s 'http://lb.npw:80' โ-timeout 15s
Running 6m test @ http://lb.npw:80
50 threads and 1000 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 1.11s 2.30s 15.00s 90.94%
Req/Sec 23.25 13.55 282.00 79.25%
393093 requests in 6.00m, 11.35GB read
Socket errors: connect 0, read 0, write 0, timeout 9555
Non-2xx or 3xx responses: 8111
Requests/sec: 1091.62
Transfer/sec: 32.27MB
เบเบฒเบเบกเบตเปเบงเบฅเบฒเปเบปเบเปเบงเบฅเบฒเบเบตเปเบเบญเบเบงเปเบฒเบกเบตเบเบฒเบเบเบฒเบเปเบเบเบเบฑเบเบเบฐเบเบฒเบเบญเบ (เบเบงเบเปเบฎเบปเบฒเปเบเปเปเบเป vCPU 4 เปเบ, RAM 4 GB hosts, Linux), เปเบฅเบฐเปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบเปเบฅเปเบง RPS เบเบตเปเบกเบตเบเปเบฒเปเบฎเบเปเบกเปเบเบชเบนเบเบเบงเปเบฒ (เบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฑเบเบเบปเบงเปเบฅเบเบชเบนเบเปเบเบดเบ 2700 RPS เปเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบตเปเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบเบซเบผเบฒเบเบเบงเปเบฒ).
เบชเบฐเบซเบฅเบธเบเบฅเบงเบกเปเบฅเปเบง, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบชเบฑเบเปเบเบเปเบซเบฑเบ เบงเปเบฒเปเบเบเปเบเปเบฅเบเบต ESNI เปเบเบดเปเบเบเบทเบงเปเบฒเบเบตเบซเบผเบฒเบ. เบเบฑเบเบกเบตเบซเบผเบฒเบเบเปเบฒเบเบฒเบกเปเบเบตเบ, เบเบปเบงเบขเปเบฒเบ, เบเบฑเบเบซเบฒเบเบญเบเบเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเบเบฐเปเบ ESNI เบชเบฒเบเบฒเบฅเบฐเบเบฐเปเบ DNS เปเบฅเบฐ rotating เบเบฐเปเบ ESNI - เบเบฑเบเบซเบฒเปเบซเบผเบปเปเบฒเบเบตเปเปเบเปเบเบทเบเบเบถเบเบชเบฒเบซเบฒเบฅเบทเบขเปเบฒเบเบเบดเบเบเบฑเบ, เปเบฅเบฐเบชเบฐเบเบฑเบเบซเบฅเปเบฒเบชเบธเบเบเบญเบเบฎเปเบฒเบ ESNI (เปเบเปเบงเบฅเบฒเบเบฝเบ) เปเบกเปเบเปเบฅเปเบง. .
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com
