ืžืขืœื“ื•ื ื’ ืคื•ืŸ HTTP / TCP ื‘ืึทืœืึทื ืกืขืจ HAProxy 2.0

ืืจื•ื™ืก ืžืึทืกืข ื‘ืึทืœืึทื ืกืขืจ ืžืขืœื“ื•ื ื’ HA Proxy 2.0, ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืคืึทืจืฉืคึผืจื™ื™ื˜ืŸ ื”ื˜ื˜ืคึผ ืคืึทืจืงืขืจ ืื•ืŸ ืึทืจื‘ื™ื˜ืจืึทืจื™ืฉ ื˜ืงืคึผ ืจื™ืงื•ื•ืขืก ืฆื•ื•ื™ืฉืŸ ืึท ื’ืจื•ืคึผืข ืคื•ืŸ โ€‹โ€‹ืกืขืจื•ื•ืขืจืก, ื’ืขื ื•ืžืขืŸ ืื™ืŸ ื—ืฉื‘ื•ืŸ ืคื™ืœืข ืกื™ื‘ื•ืช (ืœืžืฉืœ, ืขืก ื˜ืฉืขืงืก ื“ื™ ืึทื•ื•ื™ื™ืœืึทื‘ื™ืœืึทื˜ื™ ืคื•ืŸ ืกืขืจื•ื•ืขืจืก, ืึทืกืกืขืกืก ื“ื™ ืžืึทืกืข ืžื“ืจื’ื”, ื”ืื˜ DDoS ืงืึทื•ื ื˜ืขืจืžืขื–ืฉืขืจื–) ืื•ืŸ ื“ื•ืจื›ืคื™ืจืŸ ืขืจืฉื˜ื™ืง ื“ืึทื˜ืŸ ืคึฟื™ืœื˜ืจื™ืจื•ื ื’ ( ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื™ืจ ืงืขื ืขืŸ ืคึผืึทืจืก ื”ื˜ื˜ืคึผ ื›ืขื“ืขืจื–, ืคื™ืœื˜ืขืจ ื˜ืจืึทื ืกืžื™ืกื™ืข ืคืึทืœืฉ ืึธื ืคึฟืจืขื’ ืคึผืึทืจืึทืžืขื˜ืขืจืก, ืคืึทืจืฉืคึผืึทืจืŸ SQL ืื•ืŸ XSS ืกืึทื‘ืกื˜ื™ื˜ื•ืฉืึทืŸ, ืคืึทืจื‘ื™ื ื“ืŸ ืื™ื ื”ืึทืœื˜ ืคึผืจืึทืกืขืกื™ื ื’ ืื’ืขื ื˜ืŸ). HAProxy ืงืขื ืขืŸ ืื•ื™ืš ืฆื•ืœื™ื™ื’ืŸ ืฆื• ืงืึธื•ืึธืจื“ืึทื ืึทื˜ ื“ื™ ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืคื•ืŸ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ืื™ืŸ ืกื™ืกื˜ืขืžืขืŸ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืžื™ืงืจืึธืกืขืจื•ื•ื™ืกืขืก ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ. ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืงืึธื“ ืื™ื– ื’ืขืฉืจื™ื‘ืŸ ืื™ืŸ C ืื•ืŸ ืฆื•ืฉื˜ืขืœืŸ ืœื™ื™ืกืึทื ืกื˜ ืื•ื ื˜ืขืจ GPLv2. ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืื™ื– ื’ืขื ื™ืฆื˜ ืื•ื™ืฃ ืคื™ืœืข ื’ืจื•ื™ืก ื–ื™ื™ื˜ืœืขืš, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ Airbnb, Alibaba, GitHub, Imgur, Instagram, Reddit, StackOverflow, Tumblr, Twitter ืื•ืŸ Vimeo.

ืฉืœื™ืกืœ ืžืขืœื“ื•ื ื’ ืคึฟืขื™ึดืงื™ื™ื˜ืŸ:

  • ื ื™ื• API ื‘ืึทืงืขื ืขื  ื“ืึทื˜ืข ืคึผืœืึทืŸ, ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืคื™ืจืŸ HAProxy ืกืขื˜ื˜ื™ื ื’ืก ืื•ื™ืฃ ื“ื™ ืคืœื™ืขืŸ ื“ื•ืจืš REST ื•ื•ืขื‘ ืึทืคึผื™. ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜, ืื™ืจ ืงืขื ืขืŸ ื“ื™ื ืึทืžื™ืงืึทืœืœื™ ืœื™ื™ื’ืŸ ืื•ืŸ ื‘ืึทื–ื™ื™ึทื˜ื™ืงืŸ ื‘ืึทืงืขื ื“ื– ืื•ืŸ ืกืขืจื•ื•ืขืจืก, ืฉืึทืคึฟืŸ ืึทืงืœ, ื˜ื•ื™ืฉืŸ ื‘ืขื˜ืŸ ืจื•ื˜ื™ื ื’, ื˜ื•ื™ืฉืŸ ื”ืึทื ื“ืœืขืจ ื‘ื™ื™ื ื“ื™ื ื’ื– ืฆื• IP;
  • ืฆื•ื’ืขื’ืขื‘ืŸ ื“ื™ nbthread ื“ื™ืจืขืงื˜ื™ื•ื•, ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืงืึทื ืคื™ื’ื™ืขืจ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืคึฟืขื“ืขื ื’ืขื ื™ืฆื˜ ืื™ืŸ HAProxy ืฆื• ืึทืคึผื˜ืึทืžื™ื™ื– ืคืึธืจืฉื˜ืขืœื•ื ื’ ืื•ื™ืฃ ืžื•ืœื˜ื™-ื”ืึทืจืฅ ืงืคึผื•ืก. ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜, ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืึทืจื‘ืขื˜ ืคึฟืขื“ืขื ืื™ื– ืื•ื™ืกื’ืขืงืœื™ื‘ืŸ ื“ื™ืคึผืขื ื“ื™ื ื’ ืื•ื™ืฃ ื“ื™ ืงืคึผื• ืงืึธืจืขืก ื‘ื ื™ืžืฆื ืื™ืŸ ื“ื™ ืงืจืึทื ื˜ ืกื•ื•ื™ื•ื•ืข, ืื•ืŸ ืื™ืŸ ื•ื•ืึธืœืงืŸ ื™ื ื•ื•ื™ื™ืจืึทื ืžืึทื ืฅ ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ืื™ื– ืื™ื™ืŸ ืคืึธื“ืขื. ืฆื• ืฉื˜ืขืœืŸ ืฉื•ื•ืขืจ ืœื™ืžืึทืฅ, ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ืึธืคึผืฆื™ืขืก MAX_THREADS ืื•ืŸ MAX_PROCS ื–ืขื ืขืŸ ืฆื•ื’ืขื’ืขื‘ืŸ, ืœื™ืžืึทื˜ื™ื ื’ ื“ื™ ืื•ื™ื‘ืขืจืฉื˜ืขืจ ืฉื™ืขื•ืจ ืื•ื™ืฃ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืคึฟืขื“ืขื ืื•ืŸ ืคึผืจืึทืกืขืกืึทื–;
  • ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ื“ื™ ื‘ื™ื ื“ืŸ ื“ื™ืจืขืงื˜ื™ื•ื• ืคึฟืึทืจ ื‘ื™ื™ื ื“ื™ื ื’ ื”ืึทื ื“ืœืขืจืก ืฆื• ื ืขืฅ ืึทื“ืจืขืกืขืก ืื™ื– ืกื™ืžืคึผืœืึทืคื™ื™ื“. ื•ื•ืขืŸ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืึทืจื•ื™ืฃ, ืขืก ืื™ื– ื ื™ื˜ ืžืขืจ ื ื™ื™ื˜ื™ืง ืฆื• ื“ืขืคื™ื ื™ืจืŸ ืคึผืจืึธืฆืขืก ืคึผืึทืจืึทืžืขื˜ืขืจืก - ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜, ืงืึทื ืขืงืฉืึทื ื– ื•ื•ืขื˜ ื–ื™ื™ืŸ ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ืฆื•ื•ื™ืฉืŸ ืคึฟืขื“ืขื ื“ื™ืคึผืขื ื“ื™ื ื’ ืื•ื™ืฃ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืึทืงื˜ื™ื•ื• ืงืึทื ืขืงืฉืึทื ื–.
  • ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืœืึธื’ืก ื•ื•ืขืŸ ืคืœื™ืกื ื“ื™ืง ืื™ืŸ ืืคื’ืขื–ื•ื ื“ืขืจื˜ ืงืึทื ื˜ื™ื™ื ืขืจื– ืื™ื– ืกื™ืžืคึผืœืึทืคื™ื™ื“ - ื“ื™ ืงืœืึธืฅ ืงืขื ืขืŸ ืื™ืฆื˜ ื–ื™ื™ืŸ ื’ืขืฉื™ืงื˜ ืฆื• stdout ืื•ืŸ stderr, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ืฆื• ืงื™ื™ืŸ ื™ื’ื–ื™ืกื˜ื™ื ื’ ื˜ืขืงืข ื“ื™ืกืงืจื™ืคึผื˜ืึธืจ (ืœืžืฉืœ, "ืœืึธื’ fd@1 local0");
  • ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื”ื˜ืงืก (ื’ืขื‘ื•ื™ืจืŸ ื”ื˜ื˜ืคึผ ืจืขืคึผืจืขืกืขื ื˜ืึทื˜ื™ืึธืŸ) ืื™ื– ืขื ื™ื™ื‘ืึทืœื“ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜, ืึทืœืึทื•ื™ื ื’ ื‘ืึทืœืึทื ืกื™ื ื’ ื•ื•ืขืŸ ื ื™ืฆืŸ ืึทื•ื•ืึทื ืกื™ืจื˜ืข ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ืึทื–ืึท ื•ื•ื™ ืกื•ืฃ-ืฆื•-ืกื•ืฃ ื”ื˜ื˜ืคึผ / 2, ืฉื™ื›ื˜ืข 7 ืจืขื˜ืจื™ืขืก ืื•ืŸ gRPC. HTX ื˜ื•ื˜ ื ื™ืฉื˜ ืคืึทืจื‘ื™ื™ึทื˜ืŸ ื›ืขื“ืขืจื– ืื™ืŸ ืคึผืœืึทืฅ, ืึธื‘ืขืจ ืจืึทื“ื•ืกืึทื– ื“ื™ ืžืึธื“ื™ืคื™ืงืึทื˜ื™ืึธืŸ ืึธืคึผืขืจืึทืฆื™ืข ืฆื• ืจื™ืžื•ื•ื•ื™ื ื’ ืื•ืŸ ืึทื“ื™ื ื’ ืึท ื ื™ื™ึทืข ื›ืขื“ืขืจ ืฆื• ื“ื™ ืกื•ืฃ ืคื•ืŸ ื“ืขืจ ืจืฉื™ืžื”, ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืžืึทื ื™ืคึผื•ืœื™ืจืŸ ืงื™ื™ืŸ ืขืงืกื˜ืขื ื“ืขื“ ื•ื•ืขืจื™ืึทื ืฅ ืคื•ืŸ ื“ื™ HTTP ืคึผืจืึธื˜ืึธืงืึธืœ, ืคึผืจืึทื–ืขืจื•ื•ื™ื ื’ ื“ื™ ืึธืจื™ื’ื™ื ืขืœ ืกืขืžืึทื ื˜ื™ืงืก ืคื•ืŸ ื“ื™ ื›ืขื“ืขืจื– ืื•ืŸ ืึทืœืึทื•ื™ื ื’ ืื™ืจ. ืฆื• ื“ืขืจื’ืจื™ื™ื›ืŸ ื”ืขื›ืขืจ ืคืึธืจืฉื˜ืขืœื•ื ื’ ื•ื•ืขืŸ ืื™ื‘ืขืจื–ืขืฆืŸ HTTP/2 ืฆื• HTTP/1.1 ืื•ืŸ ื•ื•ื™ืฆืข ื•ื•ืขืจืกืึท;
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ื‘ืึทืึทืžื˜ืขืจ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืกื•ืฃ-ืฆื•-ืกื•ืฃ ื”ื˜ื˜ืคึผ / 2 ืžืึธื“ืข (ืคึผืจืึทืกืขืกื™ื ื’ ืคื•ืŸ ืึทืœืข ืกื˜ืึทื’ืขืก ืื™ืŸ ื”ื˜ื˜ืคึผ / 2, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืจื•ืคื˜ ืฆื• ื“ื™ ื‘ืึทืงืขื ื“, ืื•ืŸ ื ื™ื˜ ื ืึธืจ ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืฆื•ื•ื™ืฉืŸ ื“ื™ ืคึผืจืึทืงืกื™ ืื•ืŸ ื“ืขืจ ืงืœื™ืขื ื˜);
  • ืคื•ืœ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื‘ื™ื™ื“ื™ืจืขืงื˜ื™ืึธื ืึทืœ ืคึผืจืึทืงืกื™ื™ื ื’ ืคื•ืŸ ื“ื™ gRPC ืคึผืจืึธื˜ืึธืงืึธืœ ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ ืžื™ื˜ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืคึผืึทืจืก ื’ืจืคึผืง ืกื˜ืจื™ืžื–, ื›ื™ื™ืœื™ื™ื˜ื™ื ื’ ื™ื—ื™ื“ ืึทืจื˜ื™ืงืœืขืŸ, ืจื™ืคืœืขืงื˜ื™ื ื’ ื’ืจืคึผืง ืคืึทืจืงืขืจ ืื™ืŸ ื“ื™ ืงืœืึธืฅ ืื•ืŸ ืคึฟื™ืœื˜ืจื™ืจื•ื ื’ ืึทืจื˜ื™ืงืœืขืŸ ืžื™ื˜ ืึทืงืœ. gRPC ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืึธืจื’ืึทื ื™ื–ื™ืจืŸ ื“ื™ ืึทืจื‘ืขื˜ ืคื•ืŸ ืžื™ืงืจืึธ ื‘ืึทื“ื™ื ื•ื ื’ืก ืื™ืŸ ืคืึทืจืฉื™ื“ืŸ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทื›ืŸ ื•ื•ืึธืก ื™ื ื˜ืขืจืึทืงื˜ ืžื™ื˜ ื™ืขื“ืขืจ ืื ื“ืขืจืข ืžื™ื˜ ืึท ื•ื ื™ื•ื•ืขืจืกืึทืœ ืึทืคึผื™. ื ืขืฅ ืงืึธืžื•ื ื™ืงืึทืฆื™ืข ืื™ืŸ gRPC ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ ืื•ื™ืฃ ืฉืคึผื™ืฅ ืคื•ืŸ ื“ื™ ื”ื˜ื˜ืคึผ / 2 ืคึผืจืึธื˜ืึธืงืึธืœ ืื•ืŸ ืื™ื– ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ืคึผืจืึธื˜ืึธืงืึธืœ ื‘ืึทืคืขืจื– ืคึฟืึทืจ ื“ืึทื˜ืŸ ืกื™ืจื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ.
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ "ืฉื™ื›ื˜ืข 7 ืจืขื˜ืจื™ืขืก" ืžืึธื“ืข, ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืฉื™ืงืŸ ืจื™ืคึผื™ื˜ื™ื“ ื”ื˜ื˜ืคึผ ืจื™ืงื•ื•ืขืก ืื™ืŸ ื“ื™ ื’ืขืฉืขืขื ื™ืฉ ืคื•ืŸ ื•ื•ื™ื™ื›ื•ื•ืืจื’ ืคื™ื™ืœื™ืขืจื– ื•ื•ืึธืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ืฉื™ื™ึทื›ื•ืช ืฆื• ืคึผืจืึธื‘ืœืขืžืก ืฆื• ื’ืจื™ื ื“ืŸ ืึท ื ืขืฅ ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ (ืœืžืฉืœ, ืื•ื™ื‘ ืขืก ืื™ื– ืงื™ื™ืŸ ืขื ื˜ืคืขืจ ืึธื“ืขืจ ืึท ืœื™ื™ื“ื™ืง ืขื ื˜ืคืขืจ ืฆื• ืึท ื ืขืฅ ืงืฉืจ. POST ื‘ืขื˜ืŸ). ืฆื• ื“ื™ืกื™ื™ื‘ืึทืœ ื“ื™ ืžืึธื“ืข, ื“ื™ "ื“ื™ืกืึทื‘ืœืข-l7-retry" ืคืึธืŸ ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ืฆื• ื“ื™ "ื”ื˜ื˜ืคึผ-ื‘ืขื˜ืŸ" ืึธืคึผืฆื™ืข, ืื•ืŸ ื“ื™ "ื•ื•ื™ื“ืขืจ-ืื•ื™ืฃ" ืึธืคึผืฆื™ืข ืื™ื– ืฆื•ื’ืขืœื™ื™ื’ื˜ ืคึฟืึทืจ ืคื™ื™ืŸ-ื˜ื•ื ื™ื ื’ ืื™ืŸ ื“ื™ ื“ื™ืคืึธืœืฅ, ื”ืขืจืŸ ืื•ืŸ ื‘ืึทืงืขื ื“ ืกืขืงืฉืึทื ื–. ื“ื™ ืคืืœื’ืขื ื“ืข ื•ื•ืื•ื ื“ืขืจ ื–ืขื ืขืŸ ื‘ืืจืขื›ื˜ื™ื’ื˜ ืคึฟืึทืจ ืจื™ืกืขื ื“ื™ื ื’: ืึทืœืข-ืจืขื˜ืจื™ืึทื‘ืœืข-ืขืจืจืึธืจืก, ื’ืึธืจื ื™ื˜, ืงืึธื ื -ืคื™ื™ืœ, ืœื™ื™ื“ื™ืง-ืขื ื˜ืคืขืจ, ืึธืคึผืคืึทืœ-ืขื ื˜ืคืขืจ, ืขื ื˜ืคืขืจ-ื˜ื™ื™ืžืึทื•ื˜, 0rtt-ืืคื’ืขื–ืื’ื˜, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ื‘ื™ื™ื ื“ื™ื ื’ ืฆื• ืฆื•ืจื™ืงืงื•ืžืขืŸ ืกื˜ืึทื˜ื•ืก ืงืึธื•ื“ื– (404, ืขื˜ืง.) ;
  • ื ื ื™ื™ึทืข ืคึผืจืึธืฆืขืก ืคืึทืจื•ื•ืึทืœื˜ืขืจ ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“, ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืงืึทื ืคื™ื’ื™ืขืจ ืคืึทืš ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ืขืงืกืขืงื•ื˜ืึทื‘ืœืข ื˜ืขืงืขืก ืžื™ื˜ ื”ืึทื ื“ืœืขืจืก ืคึฟืึทืจ HAProxy.
    ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื“ื™ ื“ืึทื˜ืึท ืคึผืœืึทืŸ ืึทืคึผื™ (/usr/sbin/dataplaneapi), ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ืคืึทืจืฉื™ื“ืŸ ืึธืคืœืึธืึทื“ ื˜ื™ื™ึทืš ืคึผืจืึทืกืขืกื™ื ื’ ืขื ื“ื–ืฉืึทื ื–, ื–ืขื ืขืŸ ื™ืžืคึผืœืึทืžืขื ืึทื“ ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ืึทื–ืึท ืึท ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ื”ืึทื ื“ืœืขืจ;

  • ื‘ื™ื ื“ื™ื ื’ืก ื”ืึธื‘ืŸ ืฉื•ื™ืŸ ืฆื•ื’ืขื’ืขื‘ืŸ ืคึฟืึทืจ. ื‘ื™ื– ืึทื”ืขืจ, ืคืึทืจืœืขื ื’ืขืจื•ื ื’ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื™ื– ื’ืขืฉื˜ื™ืฆื˜ ื‘ืœื•ื™ื– ืื™ืŸ C;
  • ืฆื•ื’ืขื’ืขื‘ืŸ ืึท ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ืกืคึผืึทืึท-ืฉืคึผื™ื’ืœ ื”ืึทื ื“ืœืขืจ (/usr/sbin/spoa-mirror) ืคึฟืึทืจ ืžื™ืจืขืจื™ื ื’ ืจื™ืงื•ื•ืขืก ืฆื• ืึท ื‘ืึทื–ื•ื ื“ืขืจ ืกืขืจื•ื•ืขืจ (ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืคึฟืึทืจ ืงืึทืคึผื™ื™ื ื’ ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ืคึผืจืึธื“ื•ืงืฆื™ืข ืคืึทืจืงืขืจ ืคึฟืึทืจ ื˜ืขืกื˜ื™ื ื’ ืึทืŸ ื™ืงืกืคึผืขืจืžืขื ืึทืœ ืกื•ื•ื™ื•ื•ืข ืื•ื ื˜ืขืจ ืึท ืคืึทืงื˜ื™ืฉ ืžืึทืกืข);
  • ื‘ืึทืงืขื ืขื  HAProxy Kubernetes Ingress Controller ืฆื• ืขื ืฉื•ืจ ื™ื ื˜ืึทื’ืจื™ื™ืฉืึทืŸ ืžื™ื˜ ื“ื™ Kubernetes ืคึผืœืึทื˜ืคืึธืจืžืข;
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืึท ื’ืขื‘ื•ื™ื˜-ืื™ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืขืงืกืคึผืึธืจื˜ื™ื ื’ ืกื˜ืึทื˜ื™ืกื˜ื™ืง ืฆื• ื“ื™ ืžืึธื ื™ื˜ืึธืจื™ื ื’ ืกื™ืกื˜ืขื ืคึผืจืึธืžืขื˜ื”ืขื•ืก;
  • ื“ื™ ืคึผื™ืจื– ืคึผืจืึธื˜ืึธืงืึธืœ, ื’ืขื ื™ืฆื˜ ืฆื• ื•ื•ืขืงืกืœ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืžื™ื˜ ืื ื“ืขืจืข ื ืึธื•ื“ื– ืžื™ื˜ HAProxy, ืื™ื– ืขืงืกื˜ืขื ื“ืขื“. ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื”ืขืึทืจื˜ื‘ืขืึทื˜ ืื•ืŸ ื™ื ืงืจื™ืคึผื˜ื™ื“ ื“ืึทื˜ืŸ ื˜ืจืึทื ืกืžื™ืกื™ืข;
  • ื“ืขืจ "ืžื•ืกื˜ืขืจ" ืคึผืึทืจืึทืžืขื˜ืขืจ ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ืฆื• ื“ื™ "ืงืœืึธืฅ" ื“ื™ืจืขืงื˜ื™ื•ื•, ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื“ืึทืžืคึผ ื‘ืœื•ื™ื– ืึท ื˜ื™ื™ืœ ืคื•ืŸ ืจื™ืงื•ื•ืขืก ืื™ืŸ ื“ื™ ืงืœืึธืฅ, ืœืžืฉืœ 1 ืคื•ืŸ 10, ืฆื• ืคืึธืจืขื ืึทืŸ ืึทื ืึทืœื™ืกื™ืก ืžื•ืกื˜ืขืจ;
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืึธื˜ืึทืžืึทื˜ื™ืง ืคึผืจืึธืคื™ืœื™ื ื’ ืžืึธื“ืข (profiling.tasks ื“ื™ืจืขืงื˜ื™ื•ื•, ื•ื•ืึธืก ืงืขื ืขืŸ ื ืขืžืขืŸ ื“ื™ ื•ื•ืึทืœื•ืขืก ืึทื•ื˜ืึธ, ืื•ื™ืฃ ืื•ืŸ ืึทื•ื•ืขืง). ืึธื˜ืึทืžืึทื˜ื™ืง ืคึผืจืึธืคื™ืœื™ื ื’ ืื™ื– ืขื ื™ื™ื‘ืึทืœื“ ืื•ื™ื‘ ื“ื™ ื“ื•ืจื›ืฉื ื™ื˜ืœืขืš ืœื™ื™ื˜ืึทื ืกื™ ื™ืงืกื™ื“ื– 1000 ืžื™ื–. ืฆื• ื–ืขืŸ ืคึผืจืึธืคื™ืœื™ื ื’ ื“ืึทื˜ืŸ, ื“ื™ "ื•ื•ื™ื™ึทื–ืŸ ืคึผืจืึธืคื™ืœื™ื ื’" ื‘ืึทืคึฟืขืœ ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ืฆื• ื“ื™ ืจื•ื ื˜ื™ืžืข ืึทืคึผื™ ืึธื“ืขืจ ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ื‘ืึทืฉื˜ืขื˜ื™ืง ืกื˜ืึทื˜ื™ืกื˜ื™ืง ืฆื• ื“ื™ ืงืœืึธืฅ;
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืึทืงืกืขืก ื‘ืึทืงืขื ื“ ืกืขืจื•ื•ืขืจืก ื ื™ืฆืŸ ื“ื™ SOCKS4 ืคึผืจืึธื˜ืึธืงืึธืœ;
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืกื•ืฃ-ืฆื•-ืกื•ืฃ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ ืžืขืงืึทื ื™ื–ืึทื ืคึฟืึทืจ ื’ืขืฉื•ื•ื™ื ื“ ืขืคืŸ ื˜ืงืคึผ ืงืึทื ืขืงืฉืึทื ื– (TFO - TCP Fast Open, RFC 7413), ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืจืขื“ื•ืฆื™ืจืŸ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืงืึทื ืขืงืฉืึทืŸ ืกืขื˜ืึทืคึผ ืกื˜ืขืคึผืก ื“ื•ืจืš ืงืึทืžื‘ื™ื™ื ื™ื ื’ ื“ืขืจ ืขืจืฉื˜ืขืจ ืื™ืŸ ืื™ื™ืŸ ื‘ืขื˜ืŸ ืื•ืŸ ื“ื™ ืจื’ืข ืฉืจื™ื˜ ืคื•ืŸ ื“ืขืจ ืงืœืึทืกื™ืฉ 3-ืฉืจื™ื˜ ืงืฉืจ ืคืึทืจื”ืึทื ื“ืœื•ื ื’ ืคึผืจืึธืฆืขืก ืื•ืŸ ืžืื›ื˜ ืขืก ืžืขื’ืœืขืš ืฆื• ืฉื™ืงืŸ ื“ืึทื˜ืŸ ืื™ืŸ ื“ืขืจ ืขืจืฉื˜ ื‘ื™ื ืข ืคื•ืŸ โ€‹โ€‹ื’ืจื™ื ื“ืŸ ืึท ืงืฉืจ;
  • ื ืฒึทืข ืืงืฆื™ืขืก ืฆื•ื’ืขื’ืขื‘ืŸ:
    • "http-request replace-uri" ืฆื• ืคืึทืจื‘ื™ื™ึทื˜ืŸ ื“ื™ URL ื ื™ืฆืŸ ืึท ืจืขื’ื•ืœืขืจ ืื•ื™ืกื“ืจื•ืง;
    • "tcp-request content do-resolve" ืื•ืŸ "http-request do-resolve" ืคึฟืึทืจ ืจื™ื–ืึทืœื•ื•ื™ื ื’ ื“ื™ ื”ืึธืกื˜ื ืึทืžืข;
    • "tcp-request content set-dst" ืื•ืŸ "tcp-request content set-dst-port" ืฆื• ืคืึทืจื‘ื™ื™ึทื˜ืŸ ื“ื™ ืฆื™ืœ IP ืึทื“ืจืขืก ืื•ืŸ ืคึผืึธืจื˜.
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ื ื™ื™ึทืข ืงืึทื ื•ื•ืขืจื–ืฉืึทืŸ ืžืึทื“ื–ืฉื•ืœื–:
    • aes_gcm_dev ืคึฟืึทืจ ื“ืขืงืจื™ืคึผื˜ื™ื ื’ ืกื˜ืจื™ืžื– ื ื™ืฆืŸ AES128-GCM, AES192-GCM ืื•ืŸ AES256-GCM ืึทืœื’ืขืจื™ื“ืึทืžื–;
    • ืคึผืจืึธื˜ืึธื‘ื•ืฃ ืฆื• ืขืงืกื˜ืจืึทืงื˜ ืคืขืœื“ืขืจ ืคื•ืŸ ืคึผืจืึธื˜ืึธืงืึธืœ ื‘ืึทืคืขืจืก ืึทืจื˜ื™ืงืœืขืŸ;
    • ungrpc ืฆื• ืขืงืกื˜ืจืึทืงื˜ ืคืขืœื“ืขืจ ืคึฟื•ืŸ gRPC ืึทืจื˜ื™ืงืœืขืŸ.

    ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’