monitor: Configurable and protected rewrite rule for local service
[slapos.git] / stack / monitor / cgi-httpd.conf.in
1 PidFile "{{ httpd_configuration.get('pid-file') }}"
2 ServerName example.com
3 ServerAdmin someone@email
4 <IfDefine !MonitorPort>
5 Listen [{{ httpd_configuration.get('listening-ip') }}]:{{ monitor_parameters.get('port') }}
6 Define MonitorPort
7 </IfDefine>
8 DocumentRoot "{{ directory.get('www') }}"
9 ErrorLog "{{ httpd_configuration.get('error-log') }}"
10 LoadModule unixd_module modules/mod_unixd.so
11 LoadModule access_compat_module modules/mod_access_compat.so
12 LoadModule authz_core_module modules/mod_authz_core.so
13 LoadModule authn_core_module modules/mod_authn_core.so
14 LoadModule authz_host_module modules/mod_authz_host.so
15 LoadModule mime_module modules/mod_mime.so
16 LoadModule cgid_module modules/mod_cgid.so
17 LoadModule dir_module modules/mod_dir.so
18 LoadModule ssl_module modules/mod_ssl.so
19 LoadModule alias_module modules/mod_alias.so
20 LoadModule autoindex_module modules/mod_autoindex.so
21 LoadModule auth_basic_module modules/mod_auth_basic.so
22 LoadModule authz_user_module modules/mod_authz_user.so
23 LoadModule authn_file_module modules/mod_authn_file.so
24 LoadModule proxy_module      modules/mod_proxy.so
25 LoadModule proxy_http_module modules/mod_proxy_http.so
26 LoadModule rewrite_module modules/mod_rewrite.so
27
28 # SSL Configuration
29 <IfDefine !SSLConfigured>
30 Define SSLConfigured
31 SSLCertificateFile {{ httpd_configuration.get('certificate') }}
32 SSLCertificateKeyFile {{ httpd_configuration.get('key') }}
33 SSLRandomSeed startup builtin
34 SSLRandomSeed connect builtin
35 SSLRandomSeed startup /dev/urandom 256
36 SSLRandomSeed connect builtin
37 SSLProtocol -ALL +SSLv3 +TLSv1
38 SSLHonorCipherOrder On
39 SSLCipherSuite RC4-SHA:HIGH:!ADH
40 </IfDefine>
41 SSLEngine   On
42 ScriptSock {{ httpd_configuration.get('cgid-pid-file') }}
43 <Directory {{ directory.get('www') }}>
44   SSLVerifyDepth    1
45   SSLRequireSSL
46   SSLOptions        +StrictRequire
47   # XXX: security????
48   Options +ExecCGI
49   AddHandler cgi-script .cgi
50   DirectoryIndex {{ monitor_parameters.get('index-filename') }}
51 </Directory>
52 Alias /private/ {{ directory.get('private-directory') }}/
53 <Directory {{ directory.get('private-directory') }}>
54 Order Deny,Allow
55 Deny from env=AUTHREQUIRED
56 <Files ".??*">
57   Order Allow,Deny
58   Deny from all
59 </Files>
60 AuthType Basic
61 AuthName "Private access"
62 AuthUserFile "{{ monitor_parameters.get('htaccess-file') }}"
63 Require valid-user
64 Options Indexes FollowSymLinks
65 Satisfy all
66 </Directory>
67
68 <Location /rewrite>
69 AuthType Basic
70 AuthName "Private access"
71 AuthUserFile "{{ monitor_parameters.get('htaccess-file') }}"
72 Require valid-user
73 </Location>
74
75 ProxyVia On
76 RewriteEngine On
77 {% for key, value in monitor_rewrite_rule.iteritems() %}
78 RewriteRule ^/rewrite/{{ key }}($|/.*) {{ value }}/$1 [P,L]
79 {% endfor %}