<VirtualHost *:443>
    AddDefaultCharset UTF-8
    SetEnv PYTHONIOENCODING utf8

    SSLEngine on
    SSLCertificateFile /var/www/haproxy-wi/app/certs/haproxy-wi.crt
    SSLCertificateKeyFile /var/www/haproxy-wi/app/certs/haproxy-wi.key

    ServerName haproxy-wi.example.com
    ErrorLog /var/log/httpd/roxy-wi.error.log
    CustomLog /var/log/httpd/roxy-wi.access.log combined
    TimeOut 600
    LimitRequestLine 16380

    RewriteEngine On
    RewriteCond %{HTTP:Upgrade} =websocket [NC]
    RewriteRule /(.*)           ws://localhost:8765/ [P,L]
    ProxyPassReverse / http://localhost:8765/

    DocumentRoot /var/www/haproxy-wi

    WSGIDaemonProcess roxy-wi-api display-name=%{GROUP} user=apache group=apache processes=1 threads=5
    WSGIScriptAlias /api /var/www/haproxy-wi/api/app.wsgi

    WSGIDaemonProcess roxy-wi-app display-name=%{GROUP} user=apache group=apache processes=1 threads=10
    WSGIScriptAlias /app /var/www/haproxy-wi/app/app.wsgi

    <Directory /var/www/haproxy-wi/app/>
        WSGIProcessGroup roxy-wi-app
        WSGIApplicationGroup %{GLOBAL}
        Order deny,allow
        Allow from all
    </Directory>

    <Directory /var/www/haproxy-wi/app/certs>
        Options +ExecCGI -Indexes +MultiViews
        Order Deny,Allow
        Deny from all
    </Directory>

    <Directory /var/www/haproxy-wi/app/scripts/terraform/>
        Deny from all
    </Directory>

    <Directory /var/www/haproxy-wi/.git/>
        Deny from all
    </Directory>

    <IfModule mod_headers.c>
        Header set X-XSS-Protection: 1;
        Header set X-Frame-Options: deny
        Header set X-Content-Type-Options: nosniff
        Header set Strict-Transport-Security: max-age=3600;
        Header set Cache-Control no-cache
        Header set Expires: 0

        <filesMatch ".(ico|css|js|gif|jpeg|jpg|png|svg|woff|ttf|eot)$">
                Header set Cache-Control "max-age=86400, public"
        </filesMatch>
	</IfModule>
</VirtualHost>
