summaryrefslogtreecommitdiff
path: root/docs/configuration-directives/WSGIRestrictProcess.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/configuration-directives/WSGIRestrictProcess.rst')
-rw-r--r--docs/configuration-directives/WSGIRestrictProcess.rst64
1 files changed, 64 insertions, 0 deletions
diff --git a/docs/configuration-directives/WSGIRestrictProcess.rst b/docs/configuration-directives/WSGIRestrictProcess.rst
new file mode 100644
index 0000000..e5278f2
--- /dev/null
+++ b/docs/configuration-directives/WSGIRestrictProcess.rst
@@ -0,0 +1,64 @@
+===================
+WSGIRestrictProcess
+===================
+
+:Description: Restrict which daemon process groups can be selected.
+:Syntax: ``WSGIRestrictProcess`` *group-1 group-2 ...*
+:Syntax: WSGIRestrictProcess *group-1 group-2 ...*
+:Context: server config, virtual host, directory
+
+When using the WSGIProcessGroup directive, daemon process groups defined
+within virtual hosts with the same server name, or those defined at global
+scope outside of any virtual hosts can be selected. It is not possible to
+select a daemon process group which is defined within a different virtual
+host.
+
+To further limit which of the available daemon process groups can be
+selected, the WSGIRestrictProcess directive can be used to list a
+restricted set of daemon process group names. This could be used for
+example where %{ENV} substitution is being used to allow the daemon process
+group to be selected from a .htaccess file for a specific user.
+
+The main Apache configuration for this scenario might be::
+
+ WSGIDaemonProcess default processes=2 threads=25
+
+ <VirtualHost *:80>
+ ServerName www.site.com
+
+ WSGIDaemonProcess bob:1 user=bob group=bob threads=25
+ WSGIDaemonProcess bob:2 user=bob group=bob threads=25
+ WSGIDaemonProcess bob:3 user=bob group=bob threads=25
+
+ WSGIDaemonProcess joe:1 user=joe group=joe threads=25
+ WSGIDaemonProcess joe:2 user=joe group=joe threads=25
+ WSGIDaemonProcess joe:3 user=joe group=joe threads=25
+
+ SetEnv PROCESS_GROUP default
+ WSGIProcessGroup %{ENV:PROCESS_GROUP}
+
+ <Directory /home/bob/public_html>
+ Options ExecCGI
+ AllowOverride FileInfo
+ AddHandler wsgi-script .wsgi
+ WSGIRestrictProcess bob:1 bob:2 bob:3
+ SetEnv PROCESS_GROUP bob:1
+ </Directory>
+ </VirtualHost>
+
+The .htaccess file within the users account could then delegate specific
+WSGI applications to different daemon process groups using the
+`SetEnv`_ directive::
+
+ <Files blog.wsgi>
+ SetEnv PROCESS_GROUP bob:2
+ </Files>
+
+ <Files wiki.wsgi>
+ SetEnv PROCESS_GROUP bob:3
+ </Files>
+
+Note that the WSGIDaemonProcess directive and corresponding features are
+not available on Windows or when running Apache 1.3.
+
+.. _SetEnv: http://httpd.apache.org/docs/2.2/mod/mod_env.html#setenv