slapos-master: Fix parameter propagation on the templates
[slapos.git] / software / slapos-master / apache.conf.in
1 LoadModule unixd_module modules/mod_unixd.so
2 LoadModule access_compat_module modules/mod_access_compat.so
3 LoadModule authz_core_module modules/mod_authz_core.so
4 LoadModule authz_host_module modules/mod_authz_host.so
5 LoadModule log_config_module modules/mod_log_config.so
6 LoadModule setenvif_module modules/mod_setenvif.so
7 LoadModule version_module modules/mod_version.so
8 LoadModule proxy_module modules/mod_proxy.so
9 LoadModule proxy_http_module modules/mod_proxy_http.so
10 LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
11 LoadModule ssl_module modules/mod_ssl.so
12 LoadModule mime_module modules/mod_mime.so
13 LoadModule dav_module modules/mod_dav.so
14 LoadModule dav_fs_module modules/mod_dav_fs.so
15 LoadModule negotiation_module modules/mod_negotiation.so
16 LoadModule rewrite_module modules/mod_rewrite.so
17 LoadModule headers_module modules/mod_headers.so
18 LoadModule deflate_module modules/mod_deflate.so
19 LoadModule filter_module modules/mod_filter.so
20
21 AddOutputFilterByType DEFLATE text/cache-manifest text/html text/plain text/css application/hal+json application/json application/x-javascript text/xml application/xml application/rss+xml text/javascript image/svg+xml
22
23 PidFile "{{ parameter_dict['pid-file'] }}"
24 ServerAdmin admin@
25 TypesConfig conf/mime.types
26 AddType application/x-compress .Z
27 AddType application/x-gzip .gz .tgz
28
29 ServerTokens Prod
30 ServerSignature Off
31 TraceEnable Off
32
33 TimeOut {{ parameter_dict['timeout'] }}
34
35 SSLCertificateFile {{ parameter_dict['cert'] }}
36 SSLCertificateKeyFile {{ parameter_dict['key'] }}
37 SSLRandomSeed startup builtin
38 SSLRandomSeed connect builtin
39 SSLProtocol All -SSLv2
40 #SSLHonorCipherOrder on
41 {% if parameter_dict['cipher'] -%}
42 SSLCipherSuite {{ parameter_dict['cipher'] }}
43 {%- endif %}
44 SSLSessionCache shmcb:{{ parameter_dict['ssl-session-cache'] }}(512000)
45 SSLProxyEngine On
46
47 # As backend is trusting REMOTE_USER header unset it always
48 RequestHeader unset REMOTE_USER
49 {% if parameter_dict['ca-cert'] -%}
50 SSLVerifyClient require
51 RequestHeader set REMOTE_USER %{SSL_CLIENT_S_DN_CN}s
52 SSLCACertificateFile {{ parameter_dict['ca-cert'] }}
53 SSLCARevocationCheck chain
54 SSLCARevocationFile {{ parameter_dict['crl'] }}
55 {%- endif %}
56
57 ErrorLog "{{ parameter_dict['error-log'] }}"
58 # Default apache log format with request time in microsecond at the end
59 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D" combined
60 CustomLog "{{ parameter_dict['access-log'] }}" combined
61
62 <Directory />
63   Options FollowSymLinks
64   AllowOverride None
65   Allow from all
66 </Directory>
67
68 RewriteEngine On
69 {% for family_name, (port, _, backend, enable_authentication) in parameter_dict['backend-list'].items() -%}
70 {%   for ip in parameter_dict['ip-list'] -%}
71 Listen {{ ip }}:{{ port }}
72 {%   endfor -%}
73 <VirtualHost *:{{ port }}>
74 {% if enable_authentication -%}
75   SSLVerifyClient require
76   RequestHeader set REMOTE_USER %{SSL_CLIENT_S_DN_CN}s
77   SSLCACertificateFile {{ parameter_dict['shared-ca-cert'] }}
78   SSLCARevocationPath {{ parameter_dict['shared-crl'] }}
79   
80   LogFormat "%h %l %{REMOTE_USER}i %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D" combined
81   
82   # We would like to separate the the authentificated logs.
83   ErrorLog "{{ parameter_dict['log-dir'] }}/apache-{{ family_name }}-error.log"
84   CustomLog "{{ parameter_dict['log-dir'] }}/apache-{{ family_name }}-access.log" combined
85 {% endif -%}
86   SSLEngine on
87   RewriteRule ^/(.*) {{ backend }}/$1 [L,P]
88 </VirtualHost>
89 {% endfor -%}
90