Monitoring SR: Refactoring, fix and improve
[slapos.git] / software / 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 LoadModule setenvif_module modules/mod_setenvif.so
28 LoadModule headers_module modules/mod_headers.so
29 LoadModule env_module modules/mod_env.so
30 LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
31
32 SetEnvIf Origin "http(s)?://(www\.)?(.*)$" AccessControlAllowOrigin=$0
33 Header always set Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
34 Header set Access-Control-Allow-Credentials "true"
35 Header set Access-Control-Allow-Methods "PROPFIND, PROPPATCH, COPY, MOVE, DELETE, MKCOL, LOCK, UNLOCK, PUT, GETLIB, VERSION-CONTROL, CHECKIN, CHECKOUT, UNCHECKOUT, REPORT, UPDATE, CANCELUPLOAD, HEAD, OPTIONS, GET, POST"
36 Header set Access-Control-Allow-Headers "Overwrite, Destination, Content-Type, Depth, User-Agent, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name, Cache-Control, Authorization"
37
38
39
40 # SSL Configuration
41 <IfDefine !SSLConfigured>
42 Define SSLConfigured
43 SSLCertificateFile {{ httpd_configuration.get('certificate') }}
44 SSLCertificateKeyFile {{ httpd_configuration.get('key') }}
45 SSLRandomSeed startup builtin
46 SSLRandomSeed connect builtin
47 SSLRandomSeed startup /dev/urandom 256
48 SSLRandomSeed connect builtin
49 SSLProtocol -ALL +SSLv3 +TLSv1
50 SSLHonorCipherOrder On
51 SSLCipherSuite RC4-SHA:HIGH:!ADH
52 SSLSessionCache shmcb:/{{ directory.get("mod-ssl") }}/ssl_scache(512000)
53 SSLSessionCacheTimeout  300
54 </IfDefine>
55 SSLEngine   On
56 ScriptSock {{ httpd_configuration.get('cgid-pid-file') }}
57 <Directory {{ directory.get('www') }}>
58   SSLVerifyDepth    1
59   SSLRequireSSL
60   SSLOptions        +StrictRequire
61   # XXX: security????
62   Options +ExecCGI
63   AddHandler cgi-script .cgi
64   DirectoryIndex {{ monitor_parameters.get('index-filename') }}
65 </Directory>
66
67 Alias /{{ monitor_private_hash }} {{ directory.get('private-directory') }}/
68 <Directory {{ directory.get('private-directory') }}>
69     Order Allow,Deny
70     Allow from all
71     AllowOverride All
72     Satisfy Any
73     Options Indexes FollowSymLinks
74     DirectoryIndex index.html
75     <Files .htaccess>
76         order allow,deny
77         deny from all
78     </Files>
79 </Directory>
80
81 <Location /rewrite>
82 AuthType Basic
83 AuthName "Private access"
84 AuthUserFile "{{ monitor_parameters.get('htaccess-file') }}"
85 Require valid-user
86 </Location>
87
88 ProxyVia On
89 RewriteEngine On
90 {% for key, value in monitor_rewrite_rule.iteritems() %}
91 RewriteRule ^/rewrite/{{ key }}($|/.*) {{ value }}/$1 [P,L]
92 {% endfor %}