Π»Π°Π½ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΡΠ²ΡΡ Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ , Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΅Π·ΠΈΡΠΈ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js ΠΈ Java). ΠΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° NGINX Unit ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΅Π·ΠΈΡΠΈ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ Π½Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡ ΠΎΡ ΠΊΠΎΡΠ΅ΠΊΡΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅. ΠΠΎΠ΄ΡΡ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Π΅Π·ΠΈΠΊΠ° C ΠΈ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ Apache 2.0. Π‘ ΠΎΡΠΎΠ±Π΅Π½ΠΎΡΡΠΈΡΠ΅ Π½Π° NGINX Unit ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Π΅ΡΠ΅ Π² ΠΏΡΡΠ²ΠΈΡ Π±ΡΠΎΠΉ.
Π Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π·Π° Π΅Π·ΠΈΠΊΠ° Python Π΅ Π²Π½Π΅Π΄ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° API. (Asynchronous Server Gateway Interface), ΠΊΠΎΠΉΡΠΎ Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΊΠ°ΡΠΎ Π·Π°ΠΌΠ΅ΡΡΠΈΡΠ΅Π» Π½Π° WSGI, ΡΠ΅Π»ΡΡ Π΄Π° ΠΎΡΠΈΠ³ΡΡΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡΠ²ΡΡΠΈ, ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ²Π΅ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΡΠ°Π±ΠΎΡΠ°.
NGINX Unit Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π² Python ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ (ASGI ΠΈΠ»ΠΈ WSGI). ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° ASGI Π΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π° Π½Π° ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π½ΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π·Π° WSGI.
ΠΡΡΠ³ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ:
- ΠΡΠΌ ΠΌΠΎΠ΄ΡΠ»Π° Python Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ Π²Π³ΡΠ°Π΄Π΅Π½ WebSocket ΡΡΡΠ²ΡΡ, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΈ Ρ ASGI Message Format 2.1.
- ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΠΌΠΎΠ΄ΡΠ»Π° PHP ΡΠ΅Π³Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΏΡΠ΅Π΄ΠΈ ΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ΡΠΎ ΠΌΡ Π² chroot, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ Π½Π°Π»ΠΈΡΠ½ΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ.
- Π ΡΠΏΠΈΡΡΠΊΠ° ΡΡΡ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈ MIME ΡΠΈΠΏΠΎΠ²Π΅ ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ AVIF ΠΈ APNG.
- Π’Π΅ΡΡΠΎΠ²ΠΈΡΡ Π½Π°Π±ΠΎΡ Π΅ ΠΏΡΠ΅Π½Π΅ΡΠ΅Π½ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° pytest.
- ΠΡΠΈΠ³ΡΡΠ΅Π½ΠΎ Π΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° /tmp Π² chroot ΠΎΠΊΠΎΠ»Π½ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ.
- Π§ΡΠ΅Π· ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° $host Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π°ΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π° Π·Π°Π³Π»Π°Π²ΠΊΠ°ΡΠ° "Host" ΠΎΡ Π·Π°ΡΠ²ΠΊΠ°ΡΠ°.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΎΠΏΡΠΈΡ "callable" Π·Π° Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π΅ΠΌΠΈ ΠΈΠΌΠ΅Π½Π° Π½Π° Python ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
- ΠΡΠΈΠ³ΡΡΠ΅Π½Π° Π΅ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ Ρ PHP 8 RC 1.
- Π ΠΎΠ±Π΅ΠΊΡΠ° "isolation" Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΎΠΏΡΠΈΡ "automount" Π·Π° Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎΡΠΎ ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π·Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈΡΠ΅ Π΅Π·ΠΈΡΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
