Add uWSGI configuration samples
Added some samples on uWSGI config and some docs on how to run manila with uWSGI for contributors. Partially-implements: blueprint wsgi-web-servers-support Change-Id: I8e68619b00255197b3d3cf6796c60d1a3a04ff36
This commit is contained in:
parent
fba472e3a6
commit
7a1414977f
79
doc/source/contributor/apache-httpd.rst
Normal file
79
doc/source/contributor/apache-httpd.rst
Normal file
@ -0,0 +1,79 @@
|
||||
====================================
|
||||
Running manila API with a web server
|
||||
====================================
|
||||
|
||||
As part of the `community goals for Pike`_, manila has packaged
|
||||
a wsgi script entrypoint that allows you to run it with a real web server
|
||||
like Apache HTTPD or NGINX.
|
||||
|
||||
This doc shows a sample of deploying manila with uwsgi
|
||||
|
||||
Installing the API via uwsgi
|
||||
-----------------------------
|
||||
|
||||
For this deployment we use uwsgi as a web server bound to a random
|
||||
local port. Then we configure apache using mod_proxy to forward all incoming
|
||||
requests on the specified endpoint to that local webserver. This has the
|
||||
advantage of letting apache manage all inbound http connections, but allowing
|
||||
uwsgi run the python code. This also means that when we make
|
||||
changes to manila code or configuration we don't need to restart all of apache
|
||||
(which may be running other services as well) and just need to restart the local
|
||||
uwsgi daemon.
|
||||
|
||||
The httpd/ directory contains sample files for configuring HTTPD to run manila
|
||||
under uwsgi. To use sample configs, simply copy `httpd/uwsgi-manila.conf` to the
|
||||
appropiate location for your apache server.
|
||||
|
||||
On RHEL/CentOS/Fedora it is::
|
||||
|
||||
/etc/httpd/conf.d/uwsgi-manila.conf
|
||||
|
||||
On SLES/OpenSUSE it is::
|
||||
|
||||
/etc/apache2/vhosts.d/uwsgi-manila.conf
|
||||
|
||||
On Debian/Ubuntu it is::
|
||||
|
||||
/etc/apache2/sites-available/uwsgi-manila.conf
|
||||
|
||||
Enable mod_proxy by running ``sudo a2enmod proxy``
|
||||
|
||||
On Ubuntu/Debian systems enable the site using the a2ensite tool::
|
||||
|
||||
sudo a2ensite /etc/apache2/sites-available/uwsgi-manila.conf
|
||||
|
||||
This is not required on RHEL/CentOS/Fedora systems.
|
||||
|
||||
Start or restart HTTPD/Apache2 to pick up the new configuration.
|
||||
|
||||
Now we have to configure and start the uwsgi service.
|
||||
Copy the `httpd/manila-uwsgi.ini` file to `/etc/manila`. Update the file to
|
||||
match your system configuration (i.e. tweak the number of processes and threads)
|
||||
|
||||
Install uwsgi.
|
||||
|
||||
On RHEL/CentOS::
|
||||
|
||||
sudo yum install uwsgi-plugin-python3
|
||||
|
||||
On Fedora::
|
||||
|
||||
sudo dnf install uwsgi-plugin-python3
|
||||
|
||||
On SLES/OpenSUSE::
|
||||
|
||||
sudo zypper install uwsgi-python3
|
||||
|
||||
On Ubuntu/Debian::
|
||||
|
||||
sudo apt-get install uwsgi-plugin-python3
|
||||
|
||||
And start the manila server using uwsgi::
|
||||
|
||||
uwsgi --ini /etc/manila/manila-uwsgi.ini
|
||||
|
||||
.. NOTE::
|
||||
|
||||
In the sample configs port 51999 is used, this is a randomly selected number.
|
||||
|
||||
.. _community goals for Pike: https://governance.openstack.org/tc/goals/pike/deploy-api-in-wsgi.html#control-plane-api-endpoints-deployment-via-wsgi
|
@ -37,6 +37,7 @@ Programming HowTos and Tutorials
|
||||
|
||||
development.environment
|
||||
development-environment-devstack
|
||||
apache-httpd
|
||||
unit_tests
|
||||
tempest_tests
|
||||
addmethod.openstackapi
|
||||
|
18
httpd/manila-uwsgi.ini
Normal file
18
httpd/manila-uwsgi.ini
Normal file
@ -0,0 +1,18 @@
|
||||
[uwsgi]
|
||||
socket-timeout = 10
|
||||
http-auto-chunked = true
|
||||
http-chunked-input = true
|
||||
http-raw-body = true
|
||||
chmod-socket = 666
|
||||
lazy-apps = true
|
||||
add-header = Connection: close
|
||||
buffer-size = 65535
|
||||
thunder-lock = true
|
||||
plugins = python
|
||||
enable-threads = true
|
||||
exit-on-reload = true
|
||||
die-on-term = true
|
||||
master = true
|
||||
processes = 4
|
||||
http-socket = 127.0.0.1:61999
|
||||
wsgi-file = /usr/local/bin/manila-wsgi-api
|
3
httpd/uwsgi-manila.conf
Normal file
3
httpd/uwsgi-manila.conf
Normal file
@ -0,0 +1,3 @@
|
||||
KeepAlive Off
|
||||
SetEnv proxy-sendchunked 1
|
||||
ProxyPass "/share" "http://127.0.0.1:51999" retry=0
|
Loading…
Reference in New Issue
Block a user