ΠΠ±ΡΠ°Π²Π΅Π½ Π΅ ΡΠ΅ΡΠ²Π΅ΡΠΎΡ Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ NGINX Unit 1.24, Π²ΠΎ ΡΠΈΠΈ ΡΠ°ΠΌΠΊΠΈ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° Π΄Π° ΡΠ΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ Π»Π°Π½ΡΠΈΡΠ°ΡΠ΅ Π½Π° Π²Π΅Π±-Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΡΠΊΠΈ ΡΠ°Π·ΠΈΡΠΈ (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js ΠΈ Java). ΠΠ΄ΠΈΠ½ΠΈΡΠ°ΡΠ° NGINX ΠΌΠΎΠΆΠ΅ ΠΈΡΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΎ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΡΠΊΠΈ ΡΠ°Π·ΠΈΡΠΈ, ΡΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π·Π° ΡΡΠ°ΡΡΡΠ²Π°ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠΊΠΈ Π΄Π° ΡΠ΅ ΠΌΠ΅Π½ΡΠ²Π°Π°Ρ Π±Π΅Π· ΠΏΠΎΡΡΠ΅Π±Π° ΠΎΠ΄ ΡΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΊΠΈΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΠΈ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅. ΠΠΎΠ΄ΠΎΡ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π²ΠΎ C ΠΈ ΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½ΡΠ°ΡΠ° Apache 2.0. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Π΅ΡΠ΅ ΡΠΎ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈΡΠ΅ Π½Π° NGINX Unit Π²ΠΎ Π½Π°ΡΠ°Π²Π°ΡΠ° Π·Π° ΠΏΡΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅.
ΠΠΎ Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ°:
- ΠΠ±Π΅Π·Π±Π΅Π΄Π΅Π½Π° Π΅ ΠΊΠΎΠΌΠΏΠ°ΡΠΈΠ±ΠΈΠ»Π½ΠΎΡΡ ΡΠΎ Ruby 3.0.
- PHP Π΅ Π΄ΠΎΠ΄Π°Π΄Π΅Π½ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½Π°ΡΠ° Π»ΠΈΡΡΠ° Π½Π° ΡΠΈΠΏΠΎΠ²ΠΈ MIME.
- ΠΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠ°Π²Π°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ Π·Π° TLS Π²ΡΡΠΊΠΈ ΠΏΡΠ΅ΠΊΡ OpenSSL ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ.
- ΠΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΡΡΠ°ΡΠΈΡΠ½ΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΠΈΠΏΠΎΠ²ΠΈ MIME. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π° Π³ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅ ΠΏΠΎΡΡΠ°Π²Π΅Π½ΠΈΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΡΠ°ΠΌΠΎ Π½Π° ΡΠ»ΠΈΠΊΠΈ ΠΈ Π²ΠΈΠ΄Π΅Π°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°Π²Π΅Π΄Π΅ΡΠ΅: { βΡΠΏΠΎΠ΄Π΅Π»ΠΈβ: β/www/dataβ, βΡΠΈΠΏΠΎΠ²ΠΈβ: [ βΡΠ»ΠΈΠΊΠ°/*β, βΠ²ΠΈΠ΄Π΅ΠΎ/*β ] }
- Π‘ΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠ° Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ chroot, Π΄Π° ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠ° ΡΠΏΠΎΡΡΠ΅Π±Π°ΡΠ° Π½Π° ΡΠΈΠΌΠ±ΠΎΠ»ΠΈΡΠ½ΠΈ Π²ΡΡΠΊΠΈ ΠΈ Π΄Π° ΡΠ΅ Π·Π°Π±ΡΠ°Π½ΠΈ ΠΏΡΠ΅ΡΠ΅ΠΊΠΎΡ Π½Π° ΡΠΎΡΠΊΠΈΡΠ΅ Π·Π° ΠΌΠΎΠ½ΡΠΈΡΠ°ΡΠ΅ Π²ΠΎ Π²ΡΡΠΊΠ° ΡΠΎ ΠΏΠΎΠ΅Π΄ΠΈΠ½Π΅ΡΠ½ΠΈ Π±Π°ΡΠ°ΡΠ° ΠΏΡΠΈ ΠΎΠΏΡΠ»ΡΠΆΡΠ²Π°ΡΠ΅ Π½Π° ΡΡΠ°ΡΠΈΡΠ½ΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½Π°. { "share": "/www/data/static/", "chroot": "/www/data/", "follow_symlinks": false, "traverse_mounts": false }
- ΠΠΎΠ΄Π°Π΄Π΅Π½ Π΅ Π½Π°ΡΠΎΠ²Π°ΡΡΠ²Π°Ρ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΎ Π½Π°Π΄ΠΌΠΈΠ½ΡΠ²Π°ΡΠ΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ βhttpβ ΠΈ βwebsocketβ Π²ΠΎ Node.js.
- ΠΠ° Python, ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ Π½Π°Π²Π΅Π΄Π°Ρ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΡΠ΅ΠΊΡΠΈΠΈ βΡΠ΅Π»ΠΈβ Π²ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° Π·Π° Π΄Π° ΡΠ΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅ΠΌΠΈ Π·Π° ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π°ΡΠ΅ WSGI/ASGI ΡΠ°ΠΊΡΠ²Π°ΡΠΈ Π²ΠΎ Π΅Π΄Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°. { "applications": { "python-app": { "type": "python", "path": "/www/apps/python-app/", "targets": { "foo": { "module" : "foo.wsgi", "callable": "foo" }, "bar": { "module": "bar.wsgi", "callable": "bar" } } } } }
ΠΠ·Π²ΠΎΡ: opennet.ru