PageRenderTime 165ms CodeModel.GetById 22ms RepoModel.GetById 1ms app.codeStats 1ms

/silverlining/server-root/etc/apache2/sites-enabled/wsgi_runner

https://bitbucket.org/ianb/silverlining/
#! | 175 lines | 148 code | 27 blank | 0 comment | 0 complexity | 9f30d3952e3bdb93632f8e873e03d386 MD5 | raw file
Possible License(s): GPL-2.0
  1. RewriteLock /var/lock/apache2/rewrite.lck
  2. <VirtualHost 127.0.0.1:8080>
  3. ServerAdmin webmaster@localhost
  4. #DocumentRoot /var/www
  5. <Directory />
  6. Options FollowSymLinks
  7. AllowOverride None
  8. </Directory>
  9. <Directory /var/www/>
  10. Options Indexes FollowSymLinks MultiViews
  11. AllowOverride None
  12. Order allow,deny
  13. allow from all
  14. </Directory>
  15. #ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
  16. #<Directory "/usr/lib/cgi-bin">
  17. # AllowOverride None
  18. # Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
  19. # Order allow,deny
  20. # Allow from all
  21. #</Directory>
  22. <LocationMatch />
  23. # Insert filter
  24. SetOutputFilter DEFLATE
  25. # Netscape 4.x has some problems...
  26. BrowserMatch ^Mozilla/4 gzip-only-text/html
  27. # Netscape 4.06-4.08 have some more problems
  28. BrowserMatch ^Mozilla/4\.0[678] no-gzip
  29. # MSIE masquerades as Netscape, but it is fine
  30. BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
  31. # Don't compress images
  32. SetEnvIfNoCase Request_URI \
  33. \.(?:gif|jpe?g|png)$ no-gzip dont-vary
  34. # Make sure proxies don't deliver the wrong content
  35. Header append Vary User-Agent env=!dont-vary
  36. </LocationMatch>
  37. ErrorLog /var/log/apache2/error.log
  38. # Possible values include: debug, info, notice, warn, error, crit,
  39. # alert, emerg.
  40. LogLevel warn
  41. ## FIXME: %l and %u are always -; why bother?
  42. # 10.5.2.1 - - [Date] "GET /foo HTTP/1.1" 200 9430 "http://ref" "Mozilla/blah" thisserver.com "some_app" 103000
  43. LogFormat "%{SILVER_FORWARDED}e %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\" %{HTTP_HOST}e \"%{SILVER_APP_NAME}e\" %D" wsgi_combined
  44. CustomLog /var/log/apache2/access.log wsgi_combined
  45. ## Python/WSGI setup:
  46. RewriteEngine on
  47. ## Uncomment if you want to understand what is happening here:
  48. #RewriteLog /var/log/apache2/rewrite.log
  49. #RewriteLogLevel 5
  50. # Strip www. from all (non-https) domains:
  51. RewriteCond %{SERVER_PORT} ^8080$
  52. RewriteCond %{HTTP_HOST} ^www\.(.*)$
  53. RewriteRule (.*) http://%1$1 [L,R=permanent]
  54. RewriteCond %{HTTP_HOST} ^(.*)(:8080)?$
  55. RewriteRule . - [E=SILVER_REDIR_HOST:http://%1]
  56. RewriteCond %{HTTP:X-Forwarded-For} ^([0-9.]+)
  57. RewriteRule . - [E=SILVER_FORWARDED:%1]
  58. RewriteMap appdata prg:/usr/local/share/silverlining/mgr-scripts/rewrite-map.py
  59. RewriteCond ${appdata:%{HTTP_HOST}^%{REQUEST_URI}} (.*)
  60. RewriteRule . - [E=SILVER_APP_DATA:%1]
  61. # Special case redirect:
  62. RewriteCond %{ENV:SILVER_APP_DATA} ^addslash$
  63. RewriteRule (.*) %{ENV:SILVER_REDIR_HOST}$1/ [L,R=permanent]
  64. RewriteCond %{ENV:SILVER_APP_DATA} ^error:(.*)$
  65. RewriteRule . /usr/local/share/silverlining/error/routing-error.html [R=500,L,E=ERROR_MSG:%1]
  66. RewriteCond %{ENV:SILVER_APP_DATA} (.*)\|(.*)\|(.*)\|(.*)\|(.*)\|(.*)\|(.*)
  67. RewriteRule . - [E=SILVER_MATCH_PATH:%1]
  68. RewriteCond %{ENV:SILVER_APP_DATA} (.*)\|(.*)\|(.*)\|(.*)\|(.*)\|(.*)\|(.*)
  69. RewriteRule . - [E=SILVER_INSTANCE_NAME:%2]
  70. RewriteCond %{ENV:SILVER_APP_DATA} (.*)\|(.*)\|(.*)\|(.*)\|(.*)\|(.*)\|(.*)
  71. RewriteRule . - [E=SILVER_PROCESS_GROUP:%3]
  72. RewriteCond %{ENV:SILVER_APP_DATA} (.*)\|(.*)\|(.*)\|(.*)\|(.*)\|(.*)\|(.*)
  73. RewriteRule . - [E=CONFIG_WRITABLE_ROOT:%4]
  74. RewriteCond %{ENV:SILVER_APP_DATA} (.*)\|(.*)\|(.*)\|(.*)\|(.*)\|(.*)\|(.*)
  75. RewriteRule . - [E=SILVER_PLATFORM:%5]
  76. RewriteCond %{ENV:SILVER_APP_DATA} (.*)\|(.*)\|(.*)\|(.*)\|(.*)\|(.*)\|(.*)
  77. RewriteRule . - [E=SILVER_PHP_ROOT:%6]
  78. RewriteCond %{ENV:SILVER_APP_DATA} (.*)\|(.*)\|(.*)\|(.*)\|(.*)\|(.*)\|(.*)
  79. RewriteRule . - [E=SILVER_REMAINING_URI:%7]
  80. RewriteCond %{ENV:SILVER_INSTANCE_NAME} ^([^.]*)\.
  81. RewriteRule . - [E=SILVER_APP_NAME:%1]
  82. RewriteCond %{HTTP_HOST} ^(.*)(?:\:\d+)?$
  83. RewriteRule . - [E=SILVER_HOST:%1]
  84. # Refuse /index.html files (redirect):
  85. RewriteCond /var/www/%{ENV:SILVER_INSTANCE_NAME}/static%{ENV:SILVER_REMAINING_URI} -f
  86. RewriteRule (.*/)index.html %{ENV:SILVER_REDIR_HOST}$1 [L,R=permanent]
  87. # Serve up any static files:
  88. RewriteCond /var/www/%{ENV:SILVER_INSTANCE_NAME}/static%{ENV:SILVER_REMAINING_URI} -f
  89. RewriteRule . /var/www/%{ENV:SILVER_INSTANCE_NAME}/static%{ENV:SILVER_REMAINING_URI} [L]
  90. # Add a trailing slash when necessary:
  91. RewriteCond /var/www/%{ENV:SILVER_INSTANCE_NAME}/static%{ENV:SILVER_REMAINING_URI} -d
  92. RewriteCond %{ENV:SILVER_REMAINING_URI} [^/]$
  93. RewriteCond /var/www/%{ENV:SILVER_INSTANCE_NAME}/static%{ENV:SILVER_REMAINING_URI}/index.html -f
  94. RewriteRule (.*) %{ENV:SILVER_REDIR_HOST}$1/ [L,R=permanent]
  95. # Otherwise serve up index.html:
  96. RewriteCond /var/www/%{ENV:SILVER_INSTANCE_NAME}/static%{ENV:SILVER_REMAINING_URI}/index.html -f
  97. RewriteRule . /var/www/%{ENV:SILVER_INSTANCE_NAME}/static%{ENV:SILVER_REMAINING_URI}/index.html [L]
  98. ## FIXME: even when there is no writable root, these all get run:
  99. ## Repeat static serving for writable-root files; this entire stanza
  100. ## is repeated twice, first using the host-specific location, then a
  101. ## more general location:
  102. ## Per-host:
  103. # Refuse /index.html files (redirect):
  104. RewriteCond %{ENV:CONFIG_WRITABLE_ROOT}/%{ENV:SILVER_HOST}%{ENV:SILVER_REMAINING_URI} -f
  105. RewriteRule (.*/)index.html %{ENV:SILVER_REDIR_HOST}$1 [L,R=permanent]
  106. # Serve up any static files:
  107. RewriteCond %{ENV:CONFIG_WRITABLE_ROOT}/%{ENV:SILVER_HOST}%{ENV:SILVER_REMAINING_URI} -f
  108. RewriteRule . %{ENV:CONFIG_WRITABLE_ROOT}/%{ENV:SILVER_HOST}%{ENV:SILVER_REMAINING_URI} [L]
  109. # Add a trailing slash when necessary:
  110. RewriteCond %{ENV:CONFIG_WRITABLE_ROOT}/%{ENV:SILVER_HOST}%{ENV:SILVER_REMAINING_URI} -d
  111. RewriteCond %{ENV:SILVER_REMAINING_URI} [^/]$
  112. RewriteCond %{ENV:CONFIG_WRITABLE_ROOT}/%{ENV:SILVER_HOST}%{ENV:SILVER_REMAINING_URI}/index.html -f
  113. RewriteRule (.*) %{ENV:SILVER_REDIR_HOST}$1/ [L,R=permanent]
  114. # Otherwise serve up index.html:
  115. RewriteCond %{ENV:CONFIG_WRITABLE_ROOT}/%{ENV:SILVER_HOST}%{ENV:SILVER_REMAINING_URI}/index.html -f
  116. RewriteRule . %{ENV:CONFIG_WRITABLE_ROOT}/%{ENV:SILVER_HOST}%{ENV:SILVER_REMAINING_URI}/index.html [L]
  117. ## Not per-host:
  118. # Refuse /index.html files (redirect):
  119. RewriteCond %{ENV:CONFIG_WRITABLE_ROOT}%{ENV:SILVER_REMAINING_URI} -f
  120. RewriteRule (.*/)index.html %{ENV:SILVER_REDIR_HOST}$1 [L,R=permanent]
  121. # Serve up any static files:
  122. RewriteCond %{ENV:CONFIG_WRITABLE_ROOT}%{ENV:SILVER_REMAINING_URI} -f
  123. RewriteRule . %{ENV:CONFIG_WRITABLE_ROOT}%{ENV:SILVER_REMAINING_URI} [L]
  124. # Add a trailing slash when necessary:
  125. RewriteCond %{ENV:CONFIG_WRITABLE_ROOT}%{ENV:SILVER_REMAINING_URI} -d
  126. RewriteCond %{ENV:SILVER_REMAINING_URI} [^/]$
  127. RewriteCond %{ENV:CONFIG_WRITABLE_ROOT}%{ENV:SILVER_REMAINING_URI}/index.html -f
  128. RewriteRule (.*) %{ENV:SILVER_REDIR_HOST}$1/ [L,R=permanent]
  129. # Otherwise serve up index.html:
  130. RewriteCond %{ENV:CONFIG_WRITABLE_ROOT}%{ENV:SILVER_REMAINING_URI}/index.html -f
  131. RewriteRule . %{ENV:CONFIG_WRITABLE_ROOT}%{ENV:SILVER_REMAINING_URI}/index.html [L]
  132. # Next, if the request points to something that is not a .php file,
  133. # then serve it up directly...
  134. RewriteCond %{ENV:SILVER_PLATFORM} ^php$
  135. RewriteCond %{ENV:SILVER_PHP_ROOT}%{ENV:SILVER_REMAINING_URI} -f
  136. RewriteCond %{ENV:SILVER_REMAINING_URI} !\.php$
  137. RewriteRule . %{ENV:SILVER_PHP_ROOT}%{ENV:SILVER_REMAINING_URI} [L]
  138. # Lastly, we run the actual PHP:
  139. RewriteCond %{ENV:SILVER_PLATFORM} ^php$
  140. RewriteRule . /usr/local/share/silverlining/mgr-scripts/master-runner.php [L]
  141. # Lastly, setup the WSGI application:
  142. WSGIApplicationGroup %{ENV:SILVER_INSTANCE_NAME}
  143. WSGIProcessGroup %{ENV:SILVER_PROCESS_GROUP}
  144. WSGIDaemonProcess general user=www-data processes=5 threads=1 maximum-requests=200 display-name=wsgi home=/var/www
  145. WSGIDaemonProcess general_debug user=www-data processes=1 threads=10 maximum-requests=200 display-name=wsgi home=/var/www
  146. WSGIPassAuthorization On
  147. WSGIScriptAlias / /usr/local/share/silverlining/mgr-scripts/master-runner.py
  148. </VirtualHost>