Fix wrong comment.
[slapos.git] / slapos / recipe / apache_frontend / template / apache.conf.in
1 # Apache configuration file for Zope
2 # Automatically generated
3
4 # Basic server configuration
5 PidFile "%(pid_file)s"
6 ServerName %(server_name)s
7 DocumentRoot %(document_root)s
8 ServerRoot %(instance_home)s
9
10 %(listen)s
11
12 ServerAdmin %(server_admin)s
13 DefaultType text/plain
14 TypesConfig %(httpd_home)s/conf/mime.types
15 AddType application/x-compress .Z
16 AddType application/x-gzip .gz .tgz
17
18 # As backend is trusting REMOTE_USER header unset it always
19 RequestHeader unset REMOTE_USER
20
21 ServerTokens Prod
22
23 # Log configuration
24 ErrorLog "%(error_log)s"
25 LogLevel info
26 LogFormat "%%h %%{REMOTE_USER}i %%{Host}i %%l %%u %%t \"%%r\" %%>s %%b \"%%{Referer}i\" \"%%{User-Agent}i\"" combined
27 LogFormat "%%h %%{REMOTE_USER}i %%{Host}i %%l %%u %%t \"%%r\" %%>s %%b" common
28 CustomLog "%(access_log)s" common
29
30 %(path_enable)s
31
32 # List of modules
33 #LoadModule unixd_module modules/mod_unixd.so
34 #LoadModule access_compat_module modules/mod_access_compat.so
35 #LoadModule authz_core_module modules/mod_authz_core.so
36 LoadModule authz_host_module  %(httpd_home)s/modules/mod_authz_host.so
37 LoadModule log_config_module  %(httpd_home)s/modules/mod_log_config.so
38 LoadModule deflate_module     %(httpd_home)s/modules/mod_deflate.so
39 LoadModule setenvif_module    %(httpd_home)s/modules/mod_setenvif.so
40 LoadModule version_module     %(httpd_home)s/modules/mod_version.so
41 LoadModule proxy_module       %(httpd_home)s/modules/mod_proxy.so
42 LoadModule proxy_http_module  %(httpd_home)s/modules/mod_proxy_http.so
43 LoadModule ssl_module         %(httpd_home)s/modules/mod_ssl.so
44 LoadModule mime_module        %(httpd_home)s/modules/mod_mime.so
45 LoadModule dav_module         %(httpd_home)s/modules/mod_dav.so
46 LoadModule dav_fs_module      %(httpd_home)s/modules/mod_dav_fs.so
47 LoadModule negotiation_module %(httpd_home)s/modules/mod_negotiation.so
48 LoadModule rewrite_module     %(httpd_home)s/modules/mod_rewrite.so
49 LoadModule headers_module     %(httpd_home)s/modules/mod_headers.so
50 LoadModule cache_module       %(httpd_home)s/modules/mod_cache.so
51 LoadModule mem_cache_module   %(httpd_home)s/modules/mod_mem_cache.so
52 LoadModule antiloris_module   %(httpd_home)s/modules/mod_antiloris.so
53
54 # The following directives modify normal HTTP response behavior to
55 # handle known problems with browser implementations.
56 BrowserMatch "Mozilla/2" nokeepalive
57 BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown \
58                         downgrade-1.0 force-response-1.0
59 BrowserMatch "RealPlayer 4\.0" force-response-1.0
60 BrowserMatch "Java/1\.0" force-response-1.0
61 BrowserMatch "JDK/1\.0" force-response-1.0
62 # The following directive disables redirects on non-GET requests for
63 # a directory that does not include the trailing slash.  This fixes a 
64 # problem with Microsoft WebFolders which does not appropriately handle 
65 # redirects for folders with DAV methods.
66 # Same deal with Apple's DAV filesystem and Gnome VFS support for DAV.
67 BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
68 BrowserMatch "MS FrontPage" redirect-carefully
69 BrowserMatch "^WebDrive" redirect-carefully
70 BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
71 BrowserMatch "^gnome-vfs" redirect-carefully
72 BrowserMatch "^XML Spy" redirect-carefully
73 BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
74
75 # Cache directives
76 CacheEnable mem /
77 CacheDefaultExpire 3600
78 MCacheSize 8192
79 MCacheMaxObjectCount 1000
80 MCacheMaxObjectSize 8192
81 MCacheRemovalAlgorithm LRU
82
83 # Deflate
84 AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/x-javascript application/javascript
85 BrowserMatch ^Mozilla/4 gzip-only-text/html
86 BrowserMatch ^Mozilla/4\.0[678] no-gzip
87 BrowserMatch \bMSIE !no-gzip !gzip-only-text/html 
88 # Make sure proxies don't deliver the wrong content
89 Header append Vary User-Agent
90
91 # SSL Configuration
92 %(ssl_snippet)s
93
94 <VirtualHost *:%(https_port)s>
95   SSLEngine on
96   SSLProxyEngine on
97   # Rewrite part
98   ProxyVia On
99   ProxyPreserveHost On
100   ProxyTimeout 600
101   RewriteEngine On
102
103   # Include configuration file not operated by slapos. This file won't be erased
104   # or changed when slapgrid is ran. It can be freely customized by node admin.
105   Include %(custom_apache_virtualhost_conf)s
106
107   # Define the two RewriteMaps (key -> value store): one for Zope, one generic
108   # containing: rewritten URL -> original URL (a.k.a VirtualHostBase in Zope)
109   RewriteMap apachemapzope txt:%(apachemapzope_path)s
110   RewriteMap apachemapgeneric txt:%(apachemap_path)s
111
112   # Define another RewriteMap for Zope, containing:
113   # rewritten URL -> VirtualHostRoot
114   RewriteMap apachemapzopepath txt:%(apachemapzopepath_path)s
115
116   # First, we check if we have a zope backend server
117   # If so, let's use Virtual Host Daemon rewrite
118   RewriteCond ${apachemapzope:%%{SERVER_NAME}} >""
119   # We suppose that Apache listens to 443 (even indirectly thanks to things like iptables)
120   RewriteRule ^/(.*)$ ${apachemapzope:%%{SERVER_NAME}}/VirtualHostBase/https/%%{SERVER_NAME}:443/${apachemapzopepath:%%{SERVER_NAME}}/VirtualHostRoot/$1 [L,P]
121
122   # If we have generic backend server, let's rewrite without virtual host daemon
123   RewriteCond ${apachemapgeneric:%%{SERVER_NAME}} >""
124   # We suppose that Apache listens to 443 (even indirectly thanks to things like iptables)
125   RewriteRule ^/(.*)$ ${apachemapgeneric:%%{SERVER_NAME}}/$1 [L,P]
126
127   # If nothing exist : put a nice error
128   ErrorDocument 404 /notfound.html
129 </VirtualHost>
130
131 <VirtualHost *:%(plain_http_port)s>
132   RewriteEngine On
133   SSLProxyEngine on
134   ProxyPreserveHost On
135
136   # Include configuration file not operated by slapos. This file won't be erased
137   # or changed when slapgrid is ran. It can be freely customized by node admin.
138   Include %(custom_apache_virtualhost_conf)s
139
140   # We accept generic (i.e not Zope) backends on http
141   RewriteMap apachemapgeneric txt:%(apachemap_path)s
142   RewriteCond ${apachemapgeneric:%%{SERVER_NAME}} >""
143   RewriteRule ^/(.*)$ ${apachemapgeneric:%%{SERVER_NAME}}/$1 [L,P]
144
145   # Not using HTTPS? Ask that guy over there.
146   # Dummy redirection to https. Note: will work only if https listens
147   # on standard port (443).
148   RewriteRule ^/(.*)$ https://%%{SERVER_NAME}%%{REQUEST_URI}
149 </VirtualHost>
150
151 # Include configuration file not operated by slapos. This file won't be erased
152 # or changed when slapgrid is ran. It can be freely customized by node admin.
153 Include %(custom_apache_conf)s