πŸ”₯ HOT: Gallery - Full Archive

nginx

Основная Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ HTTP-сСрвСра
Π”Ρ€ΡƒΠ³ΠΈΠ΅ возмоТности HTTP-сСрвСра
Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²ΠΎΠ³ΠΎ прокси-сСрвСра
Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ TCP/UDP прокси-сСрвСра
АрхитСктура ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ
ΠŸΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ОБ ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹

nginx ("engine x")Β β€” это HTTP-сСрвСр, ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ прокси сСрвСр с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ балансировки Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, TCP/UDP прокси-сСрвСр, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΉ прокси-сСрвСр. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π˜Π³ΠΎΡ€Π΅ΠΌ БысоСвым ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ BSD ΠΈΠ· 2 ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ².

nginx извСстСн своСй ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒΡŽ, высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ΠΌ рСсурсов. Он Ρ‚Π°ΠΊΠΆΠ΅:

ΠšΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ распространСниС, коммСрчСская ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈ Ρ‚Ρ€Π΅Π½ΠΈΠ½Π³ΠΈ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ F5, Inc.

Основная Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ HTTP-сСрвСра

Π”Ρ€ΡƒΠ³ΠΈΠ΅ возмоТности HTTP-сСрвСра

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²ΠΎΠ³ΠΎ прокси-сСрвСра

  • ΠŸΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π° IMAP- ΠΈΠ»ΠΈ POP3-сСрвСр с использованиСм внСшнСго HTTP-сСрвСра Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ;
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ внСшнСго HTTP-сСрвСра Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ соСдинСния Π½Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ SMTP-сСрвСр;
  • ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ:
    • POP3: USER/PASS, APOP, AUTH LOGIN/PLAIN/CRAM-MD5;
    • IMAP: LOGIN, AUTH LOGIN/PLAIN/CRAM-MD5;
    • SMTP: AUTH LOGIN/PLAIN/CRAM-MD5;
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° SSL;
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° STARTTLS ΠΈ STLS.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ TCP/UDP прокси-сСрвСра

АрхитСктура ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ

  • Один Π³Π»Π°Π²Π½Ρ‹ΠΉ ΠΈ нСсколько Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов, Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΏΠΎΠ΄ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ;
  • Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ;
  • ИзмСнСниС настроСк ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ исполняСмого Ρ„Π°ΠΉΠ»Π° Π±Π΅Π· ΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Π²Π° Π² обслуТивании ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ²;
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° kqueue (FreeBSD 4.1+), epoll (Linux 2.6+), /dev/poll (Solaris 7 11/99+), event ports (Solaris 10), select ΠΈ poll;
  • ИспользованиС возмоТностСй, прСдоставляСмых kqueue, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ EV_CLEAR, EV_DISABLE (для Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ события), NOTE_LOWAT, EV_EOF, число доступных Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΠ΄Ρ‹ ошибок;
  • ИспользованиС возмоТностСй, прСдоставляСмых epoll, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ EPOLLRDHUP (Linux 2.6.17+, glibc 2.8+) ΠΈ EPOLLEXCLUSIVE (Linux 4.5+, glibc 2.24+);
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° sendfile (FreeBSD 3.1+, Linux 2.2+, macOS 10.5+), sendfile64 (Linux 2.4.21+) ΠΈ sendfilev (Solaris 8 7/01+);
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ AIO (FreeBSD 4.3+, Linux 2.6.22+);
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° DIRECTIO (FreeBSD 4.4+, Linux 2.4+, Solaris 2.6+, macOS);
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° accept-Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² (FreeBSD 4.1+, NetBSD 5.0+) ΠΈ TCP_DEFER_ACCEPT (Linux 2.4+);
  • На 10 000 Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… HTTP keep-alive соСдинСний расходуСтся ΠΎΠΊΠΎΠ»ΠΎ 2.5M памяти;
  • ΠœΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ копирования Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ОБ ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹

  • FreeBSD 3Β β€” 12 / i386; FreeBSD 5Β β€” 12 / amd64; FreeBSD 11 / ppc; FreeBSD 12 / ppc64;
  • Linux 2.2Β β€” 4 / i386; Linux 2.6Β β€” 5 / amd64; Linux 3Β β€” 4 / armv6l, armv7l, aarch64, ppc64le; Linux 4Β β€” 5 / s390x;
  • Solaris 9 / i386, sun4u; Solaris 10 / i386, amd64, sun4v; Solaris 11 / x86;
  • AIX 7.1 / powerpc;
  • HP-UX 11.31 / ia64;
  • macOS / ppc, i386, x86_64;
  • Windows XP, Windows Server 2003, Windows 7, Windows 10, Windows 11.