NGINX рдпреБрдирд┐рдЯ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░рдЪреЗ рдкреНрд░рдХрд╛рд╢рди 1.9.0

рдЬрд╛рдЧрд╛ рдШреЗрддрд▓реА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рд░реНрд╡реНрд╣рд░ рдкреНрд░рдХрд╛рд╢рди NGINX рдпреБрдирд┐рдЯ 1.9, рдЬреНрдпрд╛рдордзреНрдпреЗ рд╡рд┐рд╡рд┐рдз рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдВрдордзреНрдпреЗ (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js рдЖрдгрд┐ Java) рд╡реЗрдм рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рд▓рд╛рдБрдЪ рдХрд░рдгреЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдЙрдкрд╛рдп рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рдд рдЖрд╣реЗ. рдПрдирдЬреАрдЖрдпрдПрдирдПрдХреНрд╕ рдпреБрдирд┐рдЯ рдПрдХрд╛рдЪ рд╡реЗрд│реА рд╡рд┐рд╡рд┐рдз рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдВрдордзреНрдпреЗ рдПрдХрд╛рдзрд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЪрд╛рд▓рд╡реВ рд╢рдХрддреЗ, рдЬреНрдпрд╛рдЪреЗ рд▓рд╛рдБрдЪ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдпрд▓реА рд╕рдВрдкрд╛рджрд┐рдд рдЖрдгрд┐ рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рди рдХрд░рддрд╛ рдбрд╛рдпрдиреЕрдорд┐рдХрдкрдгреЗ рдмрджрд▓рд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд. рдХреЛрдб C рдЖрдгрд┐ рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓рд╛ рдЖрд╣реЗ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рддрд░рд┐рдд Apache 2.0 рдЕрдВрддрд░реНрдЧрдд рдкрд░рд╡рд╛рдирд╛рдХреГрдд. рдордзреАрд▓ рдПрдирдЬреАрдЖрдпрдПрдирдПрдХреНрд╕ рдпреБрдирд┐рдЯрдЪреНрдпрд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрд╕рд╣ рдЖрдкрдг рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдК рд╢рдХрддрд╛ рдШреЛрд╖рдгрд╛ рдкрд╣рд┐рд▓рд╛ рдЕрдВрдХ.

рдирд╡реАрди рдЖрд╡реГрддреНрддреАрдордзреНрдпреЗ:

  • рд╕рдВрдзреА URI рд╡рд┐рддрд░реНрдХ, рд╢реАрд░реНрд╖рд▓реЗрдЦ рдЖрдгрд┐ рдХреБрдХреАрдЬрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд╡рд┐рдирдВрддреНрдпрд╛ рд░рд╛рдЙрдЯрд┐рдВрдЧ;

    "рд╢реАрд░реНрд╖рд▓реЗрдЦ": [
    {
    "Accept-encoding": "*gzip*",
    "рд╡рд╛рдкрд░рдХрд░реНрддрд╛-рдПрдЬрдВрдЯ": "Mozilla/5.0*"
    },
    {
    "рд╡рд╛рдкрд░рдХрд░реНрддрд╛-рдПрдЬрдВрдЯ": "рдХрд░реНрд▓*"
    }
    ]

  • рдорд╛рд░реНрдЧ рдЬреБрд│рдгрд╛рд░реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЖрддрд╛ рдорд┐рдб-рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдорд╛рд╕реНрдХрд▓рд╛ рд╕рдорд░реНрдерди рджреЗрддрд╛рдд. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде,

    "рд╣реЛрд╕реНрдЯ": ["eu-*.example.com", "!eu-5.example.com"]

  • рдЖрдзрд╛рд░ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдордзреАрд▓ ре▓рд░реЗрдЪреА рд╕рд╛рдордЧреНрд░реА рд╣рд╛рддрд╛рд│рдгреНрдпрд╛рд╕рд╛рдареА POST рдкрджреНрдзрддреАрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рдкрд╛рдард╡рд▓реЗрд▓реЗ рдСрдкрд░реЗрд╢рдиреНрд╕ (рдмрджрд▓ JSON рд╕реНрд╡рд░реВрдкрд╛рдд рдкреНрд░рд╕рд╛рд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд);

    curl -X POST -d '{"match": {"uri": "/production/*"}, \
    "рдХреНрд░рд┐рдпрд╛": {"pass": "applications/wiki-prod"}}' \
    --unix-socket=/path/to/control.unit.sock \
    http://localhost/config/routes/

  • рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдореНрд╣рдгреВрди рдореБрдЦреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рди рдЪрд╛рд▓рд╡рддрд╛ Linux рдордзреНрдпреЗ CAP_SETUID рдЖрдгрд┐ CAP_SETGID рдХреНрд╖рдорддрд╛ рд╡рд╛рдкрд░реВрди рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдЖрдгрд┐ рдЧрдЯ рдмрджрд▓рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдорд░реНрдерди.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛