apache-frontend: update default SSL configuration
[slapos.git] / software / apache-frontend / templates / apache.conf.in
1 # Apache configuration file for Zope
2 # Automatically generated
3
4 # Basic server configuration
5 PidFile "{{ pid_file }}"
6 ServerName {{ domain }}
7 DocumentRoot {{ document_root }}
8 ServerRoot {{ instance_home }}
9
10 {% for ip in (ipv4_addr, "[%s]" % ipv6_addr) -%}
11 {%   for port in (http_port, https_port) -%}
12 {{ "Listen %s:%s" % (ip, port)  }}
13 {%   endfor -%}
14 {% endfor -%}
15
16 ServerAdmin {{ server_admin }}
17 DefaultType text/plain
18 TypesConfig {{ httpd_home }}/conf/mime.types
19 AddType application/x-compress .Z
20 AddType application/x-gzip .gz .tgz
21
22 # As backend is trusting REMOTE_USER header unset it always
23 RequestHeader unset REMOTE_USER
24
25 ServerTokens Prod
26
27 # Log configuration
28 ErrorLog "{{ error_log }}"
29 LogLevel info
30 # LogFormat "%h %{REMOTE_USER}i %{Host}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
31 # LogFormat "%h %{REMOTE_USER}i %{Host}i %l %u %t \"%r\" %>s %b" common
32 # CustomLog "{{ access_log }}" common
33 LogFormat "%h %l %{REMOTE_USER}i %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D" combined
34 CustomLog "{{ access_log }}" combined
35
36 <Directory {{ protected_path }}>
37   Order Deny,Allow
38   Allow from {{ access_control_string }}
39 </Directory>
40
41 <Directory {{ document_root }}>
42   Order Allow,Deny
43   Allow from All
44 </Directory>
45
46 # List of modules
47 #LoadModule unixd_module modules/mod_unixd.so
48 #LoadModule access_compat_module modules/mod_access_compat.so
49 #LoadModule authz_core_module modules/mod_authz_core.so
50 LoadModule authz_host_module  {{ httpd_home }}/modules/mod_authz_host.so
51 LoadModule log_config_module  {{ httpd_home }}/modules/mod_log_config.so
52 LoadModule deflate_module     {{ httpd_home }}/modules/mod_deflate.so
53 LoadModule setenvif_module    {{ httpd_home }}/modules/mod_setenvif.so
54 LoadModule version_module     {{ httpd_home }}/modules/mod_version.so
55 LoadModule proxy_module       {{ httpd_home }}/modules/mod_proxy.so
56 LoadModule proxy_http_module  {{ httpd_home }}/modules/mod_proxy_http.so
57 LoadModule ssl_module         {{ httpd_home }}/modules/mod_ssl.so
58 LoadModule mime_module        {{ httpd_home }}/modules/mod_mime.so
59 LoadModule dav_module         {{ httpd_home }}/modules/mod_dav.so
60 LoadModule dav_fs_module      {{ httpd_home }}/modules/mod_dav_fs.so
61 LoadModule negotiation_module {{ httpd_home }}/modules/mod_negotiation.so
62 LoadModule rewrite_module     {{ httpd_home }}/modules/mod_rewrite.so
63 LoadModule headers_module     {{ httpd_home }}/modules/mod_headers.so
64 LoadModule cache_module       {{ httpd_home }}/modules/mod_cache.so
65 LoadModule mem_cache_module   {{ httpd_home }}/modules/mod_mem_cache.so
66 LoadModule antiloris_module   {{ httpd_home }}/modules/mod_antiloris.so
67 LoadModule alias_module       {{ httpd_home }}/modules/mod_alias.so
68 LoadModule autoindex_module   {{ httpd_home }}/modules/mod_autoindex.so
69 LoadModule auth_basic_module  {{ httpd_home }}/modules/mod_auth_basic.so
70 LoadModule authz_user_module  {{ httpd_home }}/modules/mod_authz_user.so
71 LoadModule authn_file_module  {{ httpd_home }}/modules/mod_authn_file.so
72
73 # The following directives modify normal HTTP response behavior to
74 # handle known problems with browser implementations.
75 BrowserMatch "Mozilla/2" nokeepalive
76 BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown \
77                         downgrade-1.0 force-response-1.0
78 BrowserMatch "RealPlayer 4\.0" force-response-1.0
79 BrowserMatch "Java/1\.0" force-response-1.0
80 BrowserMatch "JDK/1\.0" force-response-1.0
81 # The following directive disables redirects on non-GET requests for
82 # a directory that does not include the trailing slash.  This fixes a
83 # problem with Microsoft WebFolders which does not appropriately handle
84 # redirects for folders with DAV methods.
85 # Same deal with Apple's DAV filesystem and Gnome VFS support for DAV.
86 BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
87 BrowserMatch "MS FrontPage" redirect-carefully
88 BrowserMatch "^WebDrive" redirect-carefully
89 BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
90 BrowserMatch "^gnome-vfs" redirect-carefully
91 BrowserMatch "^XML Spy" redirect-carefully
92 BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
93
94 # Increase IPReadLimit to 10
95 <IfModule antiloris_module>
96    # IPReadLimit - Maximum simultaneous connections in READ state per IP address 
97    IPReadLimit {{ slapparameter_dict.get('ip-read-limit', '10') }}
98 </IfModule>
99
100 # Cache directives
101 CacheEnable mem /
102 CacheDefaultExpire 3600
103 MCacheSize 8192
104 MCacheMaxObjectCount 1000
105 MCacheMaxObjectSize 8192
106 MCacheRemovalAlgorithm LRU
107
108 # Deflate
109 AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/x-javascript application/javascript
110 BrowserMatch ^Mozilla/4 gzip-only-text/html
111 BrowserMatch ^Mozilla/4\.0[678] no-gzip
112 BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
113
114 # SSL Configuration
115 SSLCertificateFile {{ login_certificate }}
116 SSLCertificateKeyFile {{ login_key }}
117 SSLRandomSeed startup builtin
118 SSLRandomSeed connect builtin
119 SSLSessionCache shmcb:/{{ httpd_mod_ssl_cache_directory }}/ssl_scache(512000)
120 SSLSessionCacheTimeout  300
121 SSLRandomSeed startup /dev/urandom 256
122 SSLRandomSeed connect builtin
123 SSLProtocol ALL -SSLv2
124 <FilesMatch "\.(cgi|shtml|phtml|php)$">
125       SSLOptions +StdEnvVars
126 </FilesMatch>
127 # Accept proxy to sites using self-signed SSL certificates
128 SSLProxyCheckPeerCN off
129 SSLProxyCheckPeerExpire off
130
131 include {{frontend_configuration.get('log-access-configuration')}}
132
133 NameVirtualHost *:{{ http_port }}
134 NameVirtualHost *:{{ https_port }}
135 include {{ slave_configuration_directory }}/*.conf