86 lines
3.6 KiB
Text
86 lines
3.6 KiB
Text
#
|
|
# The following prevents a system from having installed and loaded on apache
|
|
# both mod_python and mod_wsgi
|
|
#
|
|
<IfModule mod_wsgi.c>
|
|
<IfModule mod_python.c>
|
|
ERROR__EITHER_MOD_WSGI_XOR_MOD_PYTHON_SHOULD_BE_ACTIVE
|
|
</IfModule>
|
|
</IfModule>
|
|
|
|
#
|
|
# Django, when running under mod_python, requires the prefork MPM, so just
|
|
# fail with this bogus directive if it's not loaded. For more info see:
|
|
# https://github.com/autotest/autotest/wiki/AutotestServerInstall
|
|
#
|
|
<IfModule !prefork.c>
|
|
<IfModule mod_python.c>
|
|
ERROR__DJANGO_REQUIRES_THE_PREFORK_MPM
|
|
</IfModule>
|
|
</IfModule>
|
|
|
|
RewriteEngine On
|
|
|
|
# Block all access to the django admin pages. The django admin module that we
|
|
# have is known to leak memory. A simple webcrawler can get to these from our
|
|
# AFE landing page and bring down cautotest by causing OOM.
|
|
RewriteRule ^/admin/.* - [R=404]
|
|
RewriteRule ^/afe/server/admin/.* - [R=404]
|
|
RewriteRule ^/afe/server/admin - [R=404]
|
|
|
|
#
|
|
# Configuration for mod_wsgi
|
|
#
|
|
<IfModule mod_wsgi.c>
|
|
|
|
RewriteCond /usr/local/autotest/frontend/frontend.wsgi -f
|
|
RewriteRule ^/(afe|new_tko)/server(.*) /usr/local/autotest/frontend/frontend.wsgi [H=wsgi-script]
|
|
|
|
RewriteCond /usr/lib/python2.7/site-packages/autotest/frontend/frontend.wsgi -f
|
|
RewriteRule ^/(afe|new_tko)/server(.*) /usr/lib/python2.7/site-packages/autotest/frontend/frontend.wsgi [H=wsgi-script]
|
|
|
|
RewriteCond /usr/lib/python2.6/site-packages/autotest/frontend/frontend.wsgi -f
|
|
RewriteRule ^/(afe|new_tko)/server(.*) /usr/lib/python2.6/site-packages/autotest/frontend/frontend.wsgi [H=wsgi-script]
|
|
|
|
RewriteCond /usr/lib/python2.5/site-packages/autotest/frontend/frontend.wsgi -f
|
|
RewriteRule ^/(afe|new_tko)/server(.*) /usr/lib/python2.5/site-packages/autotest/frontend/frontend.wsgi [H=wsgi-script]
|
|
|
|
RewriteCond /usr/lib/python2.4/site-packages/autotest/frontend/frontend.wsgi -f
|
|
RewriteRule ^/(afe|new_tko)/server(.*) /usr/lib/python2.4/site-packages/autotest/frontend/frontend.wsgi [H=wsgi-script]
|
|
|
|
<LocationMatch "/(afe|new_tko)/server(.*)">
|
|
Options +ExecCGI
|
|
</LocationMatch>
|
|
|
|
WSGISocketPrefix /var/run/wsgi
|
|
# Note: this maximum-requests argument is required because of a memory leak in the django admin pages.
|
|
# The WSGIDaemonProcess directive prevents mpm_prefork from recycling the
|
|
# memory that Django uses, as it is tied up in the daemon. We can prevent
|
|
# the autotest memory leak from biting us by setting maximum-requests,
|
|
# which will recycle each daemon process after it gets a certain number of
|
|
# web requests.
|
|
<IfDefine !MOBLAB_INSTANCE>
|
|
# Moblab runs its own WSGI with different settings due to different memory
|
|
# limitations.
|
|
WSGIDaemonProcess autotestapache processes=65 threads=1 maximum-requests=200
|
|
</IfDefine>
|
|
WSGIProcessGroup autotestapache
|
|
WSGIPassAuthorization On
|
|
</IfModule>
|
|
|
|
#
|
|
# Configuration for mod_python
|
|
#
|
|
<IfModule mod_python.c>
|
|
<Location ~ "/(afe|new_tko)/server">
|
|
SetHandler python-program
|
|
PythonHandler django.core.handlers.modpython
|
|
SetEnv DJANGO_SETTINGS_MODULE frontend.settings
|
|
PythonDebug On
|
|
# Force our own site-packages to be loaded by mod_python prior to
|
|
# mod_python's system python site-packages directory.
|
|
# This way our code can depend on library versions other than
|
|
# those available as packages on various OS distributions.
|
|
PythonPath "['/usr/local/autotest/site-packages', '/usr/local/autotest', '/usr/lib/python2.7/site-packages/autotest', '/usr/lib/python2.6/site-packages/autotest', '/usr/lib/python2.5/site-packages/autotest', '/usr/lib/python2.4/site-packages/autotest'] + sys.path"
|
|
</Location>
|
|
</IfModule>
|