แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™ NGINX Unit Application Server 1.9.0

แž”แžถแž“แž€แžพแžแžกแžพแž„ แž€แžถแžšแž…แŸแž‰แž•แŸ’แžŸแžถแž™แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸแž€แž˜แŸ’แž˜แžœแžทแž’แžธ แžขแž„แŸ’แž‚แž—แžถแž– NGINX 1.9แžŠแŸ‚แž›แž€แŸ’แž“แžปแž„แž“แŸ„แŸ‡แžŠแŸ†แžŽแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แž˜แžฝแž™แž€แŸ†แž–แžปแž„แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž„แŸ’แž€แžพแžแžกแžพแž„ แžŠแžพแž˜แŸ’แž”แžธแž’แžถแž“แžถแž”แžถแž“แž“แžผแžœแž€แžถแžšแž”แžพแž€แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž€แž˜แŸ’แž˜แžœแžทแž’แžธแž‚แŸแž แž‘แŸ†แž–แŸแžšแž‡แžถแž—แžถแžŸแžถแžŸแžšแžŸแŸแžšแž€แž˜แŸ’แž˜แžœแžทแž’แžธแž•แŸ’แžŸแŸแž„แŸ— (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js แž“แžทแž„ Java)แŸ” แžขแž„แŸ’แž‚แž—แžถแž– NGINX แžขแžถแž…แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž€แž˜แŸ’แž˜แžœแžทแž’แžธแž‡แžถแž…แŸ’แžšแžพแž“แž€แŸ’แž“แžปแž„แž–แŸแž›แžŠแŸ†แžŽแžถแž›แž‚แŸ’แž“แžถแž‡แžถแž—แžถแžŸแžถแžŸแžšแžŸแŸแžšแž€แž˜แŸ’แž˜แžœแžทแž’แžธแž•แŸ’แžŸแŸแž„แŸ—แž‚แŸ’แž“แžถ แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžšแž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แžŠแŸ‚แž›แžขแžถแž…แžแŸ’แžšแžผแžœแž”แžถแž“แž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแžแžถแž˜แžœแž“แŸ’แžแžŠแŸ„แž™แž˜แžทแž“แž…แžถแŸ†แž”แžถแž…แŸ‹แž€แŸ‚แžŸแž˜แŸ’แžšแžฝแž›แžฏแž€แžŸแžถแžšแž€แŸ†แžŽแžแŸ‹แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’ แž“แžทแž„แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แžกแžพแž„แžœแžทแž‰แŸ” แž›แŸแžแž€แžผแžŠแžแŸ’แžšแžผแžœแž”แžถแž“แžŸแžšแžŸแŸแžšแž‡แžถ C แž“แžทแž„ แž…แŸ‚แž€แž…แžถแž™โ€‹แžŠแŸ„แž™ แž˜แžถแž“แžขแžถแž‡แŸ’แž‰แžถแž”แŸแžŽแŸ’แžŽแž€แŸ’แžšแŸ„แž˜ Apache 2.0 แŸ” แžขแŸ’แž“แž€แžขแžถแž…แžŸแŸ’แž‚แžถแž›แŸ‹แž–แžธแž›แž€แŸ’แžแžŽแŸˆแž–แžทแžŸแŸแžŸแžšแž”แžŸแŸ‹ NGINX Unit แž“แŸ…แž€แŸ’แž“แžปแž„ แžŸแŸแž…แž€แŸ’แžแžธแž”แŸ’แžšแž€แžถแžŸ แž”แž‰แŸ’แž แžถแžŠแŸ†แž”แžผแž„แŸ”

แž“แŸ…แž€แŸ’แž“แžปแž„แž€แŸ†แžŽแŸ‚แžแŸ’แž˜แžธแŸ–

  • แžฑแž€แžถแžŸแŸ” แžŸแŸ†แžŽแžพแžšแž“แžถแŸ†แž•แŸ’แž›แžผแžœแžŠแŸ„แž™แž•แŸ’แžขแŸ‚แž€แž›แžพแžขแžถแž‚แžปแž™แž˜แŸ‰แž„แŸ‹ URI แž”แž‹แž˜แž€แžแžถ แž“แžทแž„แžแžผแž‚แžธแŸ”

    "แž”แž‹แž˜แž€แžแžถ": [
    {
    "แž‘แž‘แžฝแž›แž™แž€-แž€แžถแžšแžขแŸŠแžทแž“แž€แžผแžŠ": "*gzip*",
    "แž—แŸ’แž“แžถแž€แŸ‹แž„แžถแžšแžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹"แŸ– "Mozilla/5.0*"
    },
    {
    "User-Agent": "curl*"
    }
    ]

  • แž‚แŸ†แžšแžผแž•แŸ’แž›แžผแžœแžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž‚แŸ’แž“แžถแžฅแžกแžผแžœแž“แŸแŸ‡แž‚แžถแŸ†แž‘แŸ’แžšแžšแž”แžถแŸ†แž„แž€แž“แŸ’แžŸแŸ„แž˜แž–แžถแž€แŸ‹แž€แžŽแŸ’แžแžถแž›แŸ” แžงแž‘แžถแž แžšแžŽแŸ,

    "host": ["eu-*.example.com", "!eu-5.example.com"]

  • แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžš แž”แŸ’แžšแžแžทแž”แžแŸ’แžแžทแž€แžถแžšแžŠแŸ‚แž›แž”แžถแž“แž•แŸ’แž‰แžพแžŠแŸ„แž™แž”แŸ’แžšแžพแžœแžทแž’แžธแžŸแžถแžŸแŸ’แžแŸ’แžš POST แžŠแžพแž˜แŸ’แž”แžธแžšแŸ€แž”แž…แŸ†แž˜แžถแžแžทแž€แžถแž“แŸƒแžขแžถแžšแŸแž€แŸ’แž“แžปแž„แž€แžถแžšแž€แŸ†แžŽแžแŸ‹แžšแž…แž“แžถแžŸแž˜แŸ’แž–แŸแž“แŸ’แž’ (แž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแžแŸ’แžšแžผแžœแž”แžถแž“แž”แž‰แŸ’แž‡แžผแž“แž‡แžถแž‘แž˜แŸ’แžšแž„แŸ‹ JSON);

    curl -X POST -d '{"match": {"uri": "/production/*"}, \
    "action": {"pass": "applications/wiki-prod"}}' \
    --unix-socket=/path/to/control.unit.sock \\
    http://localhost/config/routes/

  • แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž•แŸ’แž›แžถแžŸแŸ‹แž”แŸ’แžแžผแžšแžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹ แž“แžทแž„แž€แŸ’แžšแžปแž˜แžŠแŸ„แž™แž”แŸ’แžšแžพแžŸแž˜แžแŸ’แžแž—แžถแž– CAP_SETUID แž“แžทแž„ CAP_SETGID แž€แŸ’แž“แžปแž„แž›แžธแž“แžปแž… แžŠแŸ„แž™แž˜แžทแž“แž…แžถแŸ†แž”แžถแž…แŸ‹แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžŠแŸ†แžŽแžพแžšแž€แžถแžšแž…แž˜แŸ’แž”แž„แž‡แžถแžขแŸ’แž“แž€แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžŠแŸ‚แž›แž˜แžถแž“แžŸแžทแž‘แŸ’แž’แžทแŸ”

แž”แŸ’แžšแž—แž–: opennet.ru

แž”แž“แŸ’แžแŸ‚แž˜แž˜แžแžทแž™แŸ„แž”แž›แŸ‹