The publisher configuration file

Using the configuration file

To configure how an application is published, use the -c option of the serve administrative command:

<NAGARE_HOME>/bin/nagare-admin serve -c /path/to/the/publisher/config.cfg <application>

Several examples of publisher configurations are located into conf/publishers under the framework installation directory.

Structure

For the boolean parameters, a value of true, yes, on or 1 means True and a value of false, no, off or 0 mean False.

Comments start with the # character.

[publisher] section

This section defines the publisher to use.

Name Mandatory Default value Description
type No standalone

Choice of the publisher to use.

The current choices are:

  • standalone: Python threaded HTTP server (convenient in development mode)
  • fastcgi: multi-processes fastcgi server. A external HTTP is required (recommended in production)
  • fapws3: fast event-driven HTTP server (experimental)
  • eventlet: fast event-driven HTTP server (experimental)
host No 127.0.0.1 By default, the publisher only accepts requests on the local interface. If you want to accept external requests, set this parameter to the internet address of your external interface or to ‘0.0.0.0’ to listen to on all the interfaces of your system. The optional --host on the command line takes precedence over this parameter.
port No publisher dependent Port where to listen to the requests. If no value is explicitly given, the standalone, fapws3 and eventlet publishers listen on port 8080. And the fastcgi publisher listen on 9000. The optional --port / -p on the command line takes precedence over this parameter.
debug No off Put the publisher in debug mode

If the application is publisher by the FastCGI publisher (i.e type=fastcgi), these parameters can also be set:

Name Mandatory Default value Description
socket No No default value Unix socket path instead of the TCP host:port socket
umask No No default value Unix permission mask of the unix socket to create
minSpare No 1 Minimum number of processes ready to process new requests
maxChildren No 50 Maximum number of running processes
maxSpare No 5 Maximum number of idle processes
maxRequest No No default value Maximum number of requests served by a process before being killed

Note

New publishers can be added to the framework, and then selected with the type parameter, by registering them under the [nagare.publishers] entry point.

[sessions] section

This section defined the sessions manager to use.

Name Mandatory Default value Description
type No standalone

Choice of the sessions manager to use.

The current choices are:

  • standalone: threads-safe in-memory sessions manager. Can be used with the standalone, fapws3 or eventlet publisher.
  • memcache: the sessions are stored and shared into an external memcached server. Can be use will all the publishers

If the type parameter has the value standalone, the following parameters can be configured:

Name Mandatory Default value Description
nb No 10000 Maximum number of sessions keeped

If the type parameter has the value memcache, the following parameters can be configured:

Name Mandatory Default value Description
host No 127.0.0.1 Address of the memcached server
port No 11211 Port of the memcached server
ttl No 0 How long (in seconds) does the session live? A value of 0 means the sessions are managed in LRU.
reset No on If this parameter is true, then all the sessions are removed from the memcached server when the application (re)starts.
debug No off Display the requests sent to the memcached server

Note

New sessions managers can be added to the framework, and then selected with the type parameter, by registering them under the [nagare.sessions] entry point.

[reloader] section

This section configures the reloader process which automatically detect source changes and relaunch the application.

Name Mandatory Default value Description
activated No off If not activated, the framework will not read the following parameters. In production, don’t activate the reloader.
interval No 1 Time, in seconds, between the control of source changes