aodh/doc/source/install/mod_wsgi.rst
Mehdi Abaakouk 09a2f0994f Use werkzeug to run the developement API server
wsgi.simple_server in a mono threaded process that can handle only
5 requests at a time.

Even the doc recommands to setup Ceilometer through an other WSGI services
like Apache 'mod_wsgi', we can provide a better testing API server.

So this patch changes the default HTTP server to the werkzeug one with
a autodiscovery of number of workers that we can use.

The client queue of werkzeug is 128, so on a 4 cpus machine, ceilometer-api
can now handle 512 connections instead of 5.

Also the change adds references of how to deploy pecan application in
the documentation.

The config option enable_reverse_dns_lookup can be safely removed,
because werkzeug doesn't do any reverse dns lookup.

DocImpact: configuration options changed:
enable_reverse_dns_lookup removed, api_workers added

Change-Id: If7450b393ea88bc185e5c82b706ace9c38ce350e
2015-02-11 07:25:24 +01:00

2.4 KiB

Installing the API Behind mod_wsgi

Ceilometer comes with a few example files for configuring the API service to run behind Apache with mod_wsgi.

app.wsgi

The file ceilometer/api/app.wsgi sets up the V2 API WSGI application. The file is installed with the rest of the ceilometer application code, and should not need to be modified.

etc/apache2/ceilometer

The etc/apache2/ceilometer file contains example settings that work with a copy of ceilometer installed via devstack.

../../../etc/apache2/ceilometer

  1. Copy or symlink the file to /etc/apache2/sites-avilable.

  2. Modify the VirtualHost directive, setting a hostname or IP for the service. The default settings assume that the ceilometer API is the only service running on the local Apache instance, which conflicts with Horizon's default configuration.

  3. Modify the WSGIDaemonProcess directive to set the user and group values to a user available on your server.

  4. Modify the APACHE_RUN_USER and APACHE_RUN_GROUP values to the name of a user and group available on your server.

  5. Enable the ceilometer site.

    $ a2ensite ceilometer
    $ service apache2 reload

Limitation

As Ceilometer is using Pecan and Pecan's DebugMiddleware doesn't support multiple processes, there is no way to set debug mode in the multiprocessing case. To allow multiple processes the DebugMiddleware may be turned off by setting pecan_debug to False in the api section of ceilometer.conf.

For other WSGI setup you can refer to the pecan deployement documentation. .. _`pecan deployement`: http://pecan.readthedocs.org/en/latest/deployment.html#deployment