ΡΠ΅ΡΠ²Π΅ΡΠ° Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ , Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΅Π·ΠΈΡΠΈ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js ΠΈ Java). ΠΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° NGINX Unit ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΅Π·ΠΈΡΠΈ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ Π½Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡ ΠΎΡ ΠΊΠΎΡΠ΅ΠΊΡΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅. ΠΠΎΠ΄ΡΡ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Π΅Π·ΠΈΠΊΠ° C ΠΈ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ Apache 2.0. Π‘ ΠΎΡΠΎΠ±Π΅Π½ΠΎΡΡΠΈΡΠ΅ Π½Π° NGINX Unit ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Π΅ΡΠ΅ Π² ΠΏΡΡΠ²ΠΈΡ Π±ΡΠΎΠΉ.
Π Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ:
- ΠΠΎΡΠ²ΠΈ ΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΠΈ ΠΈ Π½ΠΎΠΌΠ΅ΡΠ° Π½Π° ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈ ΠΈ Π΄Π΅ΡΡΠΈΠ½Π°ΡΠΈΠΈ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠΌΡΠ½Π° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΠΈ Π³ΡΡΠΏΠ°ΡΠ° Π·Π° ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠΎΠ½ΠΎΠ²ΠΈΡΡ ΠΏΡΠΎΡΠ΅Ρ Π½Π° Unit ΡΠ°Π±ΠΎΡΠΈ Ρ ΠΏΡΠ°Π²Π° Π½Π° Π½Π΅ΠΏΡΠΈΡΡΠΈΠ³Π½Π°Π» ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π».
- ΠΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠΌΠΏΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ Π½Π° Go Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ΠΎ Π½Π° Β«unit.nginx.org/goΒ» (Π·Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»Π° Π·Π° Unit ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Β«go get unit.nginx.org/goΒ»).
- ΠΡΠΈ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ Π½Π° Go ΡΠ΅Π³Π° ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π°Ρ Ρ libunit.
- Π‘ΠΏΠ°Π΄ Π½Π° ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡΡΠ° Π½Π° ΠΏΠ°ΠΌΠ΅Ρ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ.
- ΠΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π·Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Docker, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠΎ Π±ΡΡΠ·ΠΎ ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΎ Π½Π° NGINX Unit. Π‘ΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΎΠ±ΡΠ°Π·Π° Π΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π»ΠΎ ΠΎΡ Debian 9 Π½Π° Debian 10;
- Π Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π·Π° CentOS ΠΈ RHEL 7 ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ Ρ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π·Π°
Python 3.6. ΠΠ° Amazon Linux 2 LTS ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ Ρ Python 3.7. ΠΠ°ΠΊΠ΅ΡΠΈΡΠ΅ Π·Π° Python 2.7 ΡΠ° ΠΏΡΠ΅ΠΈΠΌΠ΅Π½ΡΠ²Π°Π½ΠΈ ΠΎΡ Β«unit-pythonΒ» Π½Π° Β«unit-python27Β».
Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΎΡΠ±Π΅Π»Π΅ΠΆΠΈ ΠΊΠΎΡΠ΅ΠΊΡΠΈΡΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΊΠ»ΠΎΠ½ΠΊΠ° , Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΊΠΎΡΡΠΎ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π° ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° Π½ΠΎΠ²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ (Π² ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½Π°ΡΠ° ΡΡΠ°Π±ΠΈΠ»Π½Π° Π²Π΅ΡΡΠΈΡ 1.16 ΡΠ΅ Π²Π½Π°ΡΡΡ ΡΠ°ΠΌΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΈ Π±ΡΠ³ΠΎΠ²Π΅ ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ). Π Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ ΡΠ° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ ΡΠ°ΠΌΠΎ ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ Π½Π° Π±ΡΠ³ΠΎΠ²Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡΠ°Π½ΠΈ ΡΠ° ΡΡΠΈΠ²ΠΎΠ²Π΅ΡΠ΅, ΠΏΡΠΎΡΠ²ΡΠ²Π°ΡΠΈ ΡΠ΅ ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΡΠ°Π·Π½Π° Π·Π°ΠΌΡΠ½Π° Π² Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°ΡΠ° Β«rewriteΒ» ΠΈ ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°ΡΠ° Β«breakΒ» Π·Π°Π΅Π΄Π½ΠΎ Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΈΡΠ΅ Β«aliasΒ» ΠΈΠ»ΠΈ Β«proxy_passΒ» Ρ URI. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° Π΅ ΠΎΡΡΡΡΠ°Π½Π΅Π½ΠΎ Π½Π΅ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ΡΠΎ ΠΏΡΠΈ ΠΏΠΎΠΏΡΠ»Π²Π°Π½Π΅ΡΠΎ Π½Π° Π·Π°Π³Π»Π°Π²ΠΊΠ°ΡΠ° Β«LocationΒ», ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠ΅ Π² ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π·Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° Π°Π΄ΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ Ρ Π½ΡΠ»Π΅Π² ΠΊΠΎΠ΄. Π ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΡΠ΅Π»Ρ HTTP/2 Π΅ ΠΎΡΡΡΡΠ°Π½Π΅Π½Π° ΡΠ΅Ρ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΡΠΎΠΊΠ΅ΡΠΈ. ΠΠΎΠΏΡΠ°Π²Π΅Π½Π° Π΅ Π³ΡΠ΅ΡΠΊΠ°, ΠΊΠΎΡΡΠΎ Π΅ Π²ΠΎΠ΄ΠΈΠ»Π° Π΄ΠΎ ΠΏΡΠ΅ΠΊΡΡΠ²Π°Π½Π΅ Π½Π° SSL-ΡΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ΡΠΎ ΠΏΠΎ ΡΠ°ΠΉΠΌ-Π°ΡΡ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΠΈΠΏΠ΅Π»Π°ΠΉΠ½Π΅Π΄ Π·Π°ΡΠ²ΠΊΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
