Commit Graph

124 Commits

Author SHA1 Message Date
Valentin Bartenev
fc496c19ac Changed the default number of spare processes to 0. 2018-02-09 19:06:53 +03:00
Andrey Zelenkov
949ba262cc Style fixes. 2018-02-07 15:34:42 +03:00
Andrey Zelenkov
b4e467e669 Fixed configuration checks for "max" property. 2018-02-06 20:31:48 +03:00
Alexander Borisov
960962ddce Added Perl support. 2018-01-31 15:47:00 +03:00
Max Romanov
9cd4fdbdb7 Introducing extended app process management.
- Pre-fork 'processes.spare' application processes;
- fork more processes to keep 'processes.spare' idle processes;
- fork on-demand up to 'processes.max' count;
- scale down idle application processes above 'processes.spare' after
  'processes.idle_timeout';
- number of concurrently started application processes also limited by
  'processes.spare' (or 1, if spare is 0).
2018-01-29 16:17:36 +03:00
Valentin Bartenev
01ec9a5dba Ability to validate configuration options with multiple types. 2018-01-18 15:52:44 +03:00
Max Romanov
2db8e586e5 Reduced duplication of validated app config options.
Common options moved to separate array.  Application-specific arrays refers
to common options.
2018-01-18 09:08:25 +03:00
Max Romanov
c2918a0014 Introducing pretty NXT_CONF_VLDT_END macro. 2018-01-18 09:08:16 +03:00
Igor Sysoev
dbd7540a04 Removed duplicate declaration. 2017-12-28 20:50:49 +03:00
Max Romanov
5196cf4d50 Rescheduling of pending request after configured timeout.
New optional configuration parameter introduced: limits.reschedule_timeout.
Default value 1 second.  In the case when request is written to the port
socket 'in advance', it is called 'pending'.

On every completed request, the head of pending request is checked against
reschedule timeout.  If this request waiting for execution longer than
timeout, it is cancelled, new port selected for this request.
2017-12-27 17:48:04 +03:00
Max Romanov
3781950bad Introducing python virtualenv configuration.
New parameter 'home' for python application allows to configure
application-specific virtualenv path.

This closes #15 issue on GitHub.
2017-11-29 18:48:55 +03:00
Valentin Bartenev
1c6d4d8cff Basic validation errors. 2017-10-10 19:46:58 +03:00
Valentin Bartenev
e4bea2c75c Optimized application type handling. 2017-10-10 19:15:08 +03:00
Max Romanov
0bec14878e Introducing application timeout. 2017-09-15 20:30:24 +03:00
Max Romanov
999de31e25 Spreading user validation for php and go apps. 2017-09-06 08:59:18 -07:00
Igor Sysoev
37c16d1801 Fixed building by Sun C on Solaris. 2017-09-06 17:13:18 +03:00
Igor Sysoev
22ae3d4ff5 Controller: validating user and group names. 2017-09-06 02:30:23 +03:00
Max Romanov
f1685e371f Introducing working_directory directive for applications. 2017-09-05 10:22:44 -07:00
Igor Sysoev
949548da29 The new module configuration interface.
Configuration and building example:

  ./configure
  ./configure python
  ./configure php
  ./configure go
  make all

or

  ./configure
  make nginext
  ./configure python
  make python
  ./configure php
  make php
  ./configure go
  make go

Modules configuration options and building examples:

  ./configure python --module=python2 --config=python2.7-config
  make python2

  ./configure php --module=php7 --config=php7.0-config
                  --lib-path=/usr/local/php7.0
  make php7

  ./configure go --go=go1.6 --go-path=${HOME}/go1.6
  make go1.6
2017-08-17 21:47:19 +03:00
Max Romanov
316c77a9de Fixed building on Solaris by Sun C. 2017-07-25 16:18:31 +03:00
Valentin Bartenev
dc874cd22e Configuration: improved validation. 2017-07-10 18:53:36 +03:00
Valentin Bartenev
fd0a4ff064 Configuration: basic schema validation for applications. 2017-07-07 20:37:43 +03:00
Valentin Bartenev
c9fbd832ab Controller: sending JSON configuration to router. 2017-07-06 22:52:05 +03:00
Valentin Bartenev
842aa9ab46 Configuration: basic validation of schema. 2017-07-05 18:44:43 +03:00