<VirtualHost 127.0.0.1:8080> | |
ServerAdmin webmaster@localhost | |
ServerName data.gov.au | |
ServerAlias www.data.gov.au, opendata.linkdigital.com.au | |
#allow access to local static content eg. logos | |
Alias /index.html /var/www/index.html | |
Alias /logos /var/www/logos | |
Alias /tools /var/www/tools.shtml | |
Alias /opendata /var/www/opendata.shtml | |
Alias /opengov /var/www/opengov.shtml | |
DocumentRoot /var/www | |
<IfModule mod_expires.c> | |
<FilesMatch "\.(jpe?g|png|gif|js|css)$"> | |
ExpiresActive On | |
ExpiresDefault "access plus 1 week" | |
</FilesMatch> | |
</IfModule> | |
<Directory /> | |
Options FollowSymLinks | |
AllowOverride None | |
</Directory> | |
<Directory /var/www/> | |
Options -Indexes -FollowSymLinks -MultiViews +Includes | |
AllowOverride None | |
Order allow,deny | |
allow from all | |
AddType text/html .shtml | |
AddOutputFilter INCLUDES .shtml | |
</Directory> | |
ErrorLog ${APACHE_LOG_DIR}/error.log | |
# Possible values include: debug, info, notice, warn, error, crit, alert, emerg. | |
LogLevel warn | |
CustomLog ${APACHE_LOG_DIR}/access.log varnishcombined | |
RewriteEngine On | |
RewriteMap lc int:tolower | |
# RewriteRule ^/apps/antenna-mate/?$ http://antennamate.com/ [PT] | |
# RewriteRule ^/apps/postcode-finder/?$ http://www.aus-emaps.com/postcode_finder.php [PT] | |
# RewriteRule ^/apps/the-australian-cost-of-living-heatmap/?$ http://www.creditcardcompare.com.au/tools/cost-of-living-heatmap/ [PT] | |
RewriteRule ^/catalogues/?$ /organization [PT] | |
RewriteRule ^/dataset/“cycling-in-new-south-wales-what-the-data-tells-us”-and-related-data/? /dataset/2809cycling-in-new-south-wales-what-the-data-tells-us2809-and-related-data [PT] | |
RewriteRule ^/dataset/apvma-pubcris-dataset-for-registered-agricultural-and-veterinary-chemical-products-and-approved-actives/? /dataset/apvma-pubcris-dataset-for-registered-agricultural-and-veterinary-chemical-products-and-approved-acti [PT] | |
RewriteRule ^/dataset_category/business/?$ /group/business [PT] | |
RewriteRule ^/dataset_category/community/?$ /group/community [PT] | |
RewriteRule ^/dataset_category/geography/?$ /group/geography [PT] | |
RewriteRule ^/dataset_category/government/?$ /group/government [PT] | |
RewriteRule ^/dataset_category/health/?$ /group/health [PT] | |
RewriteRule ^/dataset_category/?$ /group [PT] | |
RewriteRule ^/feed/?$ /feeds/dataset.atom [PT] | |
RewriteRule ^/jurisdiction/australian-capital-territory/?$ /dataset?q=act [PT] | |
RewriteRule ^/jurisdiction/new-south-wales/?$ /dataset?q=new+south+wales [PT] | |
RewriteRule ^/jurisdiction/queensland/?$ /dataset?q=queensland [PT] | |
RewriteRule ^/jurisdiction/south-australia/?$ /dataset?q=south+australia [PT] | |
RewriteRule ^/jurisdiction/victoria/?$ /dataset?q=victoria [PT] | |
RewriteRule ^/jurisdiction/western-australia/?$ /dataset?q=western+australia [PT] | |
RewriteRule ^/jurisdiction/?$ /dataset [PT] | |
# RewriteCond %{QUERY_STRING} ^category=([a-z]+) | |
# RewriteRule ^/data/?$ /group/${lc:%1}? [PT] | |
# RewriteCond %{QUERY_STRING} ^format=Shapefile | |
# RewriteRule ^/data/?$ /dataset?res_format=shp [PT] | |
RewriteRule ^/data/?$ /dataset? [PT] | |
RewriteCond %{QUERY_STRING} ^s=(.*) | |
RewriteRule ^/ /dataset?q=%1 [PT] | |
FilterDeclare OPENDATA | |
FilterProvider OPENDATA SUBSTITUTE resp=Content-Type $text/ | |
FilterProvider OPENDATA SUBSTITUTE resp=Content-Type $/javascript | |
FilterProvider OPENDATA SUBSTITUTE resp=Content-Type $/json | |
FilterProvider OPENDATA SUBSTITUTE resp=Content-Type $/xml | |
FilterChain OPENDATA | |
Substitute "s#//opendata.linkdigital.com.au#//data.gov.au#" | |
WSGIScriptAlias / /var/lib/ckan/dga/pyenv/bin/dga.py | |
WSGIPassAuthorization On | |
ErrorLog /var/log/apache2/ckandga.error.log | |
CustomLog /var/log/apache2/ckandga.custom.log combined | |
</VirtualHost> | |
# This is a basic VCL configuration file for varnish. See the vcl(7) | |
# man page for details on VCL syntax and semantics. | |
# | |
# Default backend definition. Set this to point to your content | |
# server. | |
# | |
backend default { | |
.host = "127.0.0.1"; | |
.port = "8080"; | |
} | |
sub vcl_fetch { | |
set beresp.grace = 1h; | |
if (beresp.http.content-type ~ "(text|application)") { | |
set beresp.do_gzip = true; | |
} | |
if (req.url ~ "\.(png|gif|jpg|jpeg|swf|css|js|woff|eot)$") { | |
unset beresp.http.set-cookie; | |
} | |
} | |
sub vcl_recv { | |
if (req.url ~ "^/_tracking") { | |
return (pass); | |
} | |
if (req.url ~ "\.(png|gif|jpg|jpeg|swf|css|js|woff|eot)$") { | |
return(lookup); | |
} | |
if (req.http.Cookie) { | |
set req.http.Cookie = regsuball(req.http.Cookie, "(^|; ) *__utm.=[^;]+;? *", "\1"); # removes all cookies named __utm? (utma, utmb...) - tracking thing | |
if (req.http.Cookie == "") { | |
remove req.http.Cookie; | |
} | |
} | |
} | |
sub vcl_deliver { | |
if (!resp.http.Vary) { | |
set resp.http.Vary = "Accept-Encoding"; | |
} else if (resp.http.Vary !~ "(?i)Accept-Encoding") { | |
set resp.http.Vary = resp.http.Vary + ",Accept-Encoding"; | |
} | |
if (obj.hits > 0) { | |
set resp.http.X-Cache = "HIT"; | |
} else { | |
set resp.http.X-Cache = "MISS"; | |
} | |
} | |
# | |
# Below is a commented-out copy of the default VCL logic. If you | |
# redefine any of these subroutines, the built-in logic will be | |
# appended to your code. | |
# sub vcl_recv { | |
# if (req.restarts == 0) { | |
# if (req.http.x-forwarded-for) { | |
# set req.http.X-Forwarded-For = | |
# req.http.X-Forwarded-For + ", " + client.ip; | |
# } else { | |
# set req.http.X-Forwarded-For = client.ip; | |
# } | |
# } | |
# if (req.request != "GET" && | |
# req.request != "HEAD" && | |
# req.request != "PUT" && | |
# req.request != "POST" && | |
# req.request != "TRACE" && | |
# req.request != "OPTIONS" && | |
# req.request != "DELETE") { | |
# /* Non-RFC2616 or CONNECT which is weird. */ | |
# return (pipe); | |
# } | |
# if (req.request != "GET" && req.request != "HEAD") { | |
# /* We only deal with GET and HEAD by default */ | |
# return (pass); | |
# } | |
# if (req.http.Authorization || req.http.Cookie) { | |
# /* Not cacheable by default */ | |
# return (pass); | |
# } | |
# return (lookup); | |
# } | |
# | |
# sub vcl_pipe { | |
# # Note that only the first request to the backend will have | |
# # X-Forwarded-For set. If you use X-Forwarded-For and want to | |
# # have it set for all requests, make sure to have: | |
# # set bereq.http.connection = "close"; | |
# # here. It is not set by default as it might break some broken web | |
# # applications, like IIS with NTLM authentication. | |
# return (pipe); | |
# } | |
# | |
# sub vcl_pass { | |
# return (pass); | |
# } | |
# | |
# sub vcl_hash { | |
# hash_data(req.url); | |
# if (req.http.host) { | |
# hash_data(req.http.host); | |
# } else { | |
# hash_data(server.ip); | |
# } | |
# return (hash); | |
# } | |
# | |
# sub vcl_hit { | |
# return (deliver); | |
# } | |
# | |
# sub vcl_miss { | |
# return (fetch); | |
# } | |
# | |
# sub vcl_fetch { | |
# if (beresp.ttl <= 0s || | |
# beresp.http.Set-Cookie || | |
# beresp.http.Vary == "*") { | |
# /* | |
# * Mark as "Hit-For-Pass" for the next 2 minutes | |
# */ | |
# set beresp.ttl = 120 s; | |
# return (hit_for_pass); | |
# } | |
# return (deliver); | |
# } | |
# | |
# sub vcl_deliver { | |
# return (deliver); | |
# } | |
# | |
# sub vcl_error { | |
# set obj.http.Content-Type = "text/html; charset=utf-8"; | |
# set obj.http.Retry-After = "5"; | |
# synthetic {" | |
# <?xml version="1.0" encoding="utf-8"?> | |
# <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" | |
# "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | |
# <html> | |
# <head> | |
# <title>"} + obj.status + " " + obj.response + {"</title> | |
# </head> | |
# <body> | |
# <h1>Error "} + obj.status + " " + obj.response + {"</h1> | |
# <p>"} + obj.response + {"</p> | |
# <h3>Guru Meditation:</h3> | |
# <p>XID: "} + req.xid + {"</p> | |
# <hr> | |
# <p>Varnish cache server</p> | |
# </body> | |
# </html> | |
# "}; | |
# return (deliver); | |
# } | |
# | |
# sub vcl_init { | |
# return (ok); | |
# } | |
# | |
# sub vcl_fini { | |
# return (ok); | |
# } | |
<IfModule mod_deflate.c> | |
AddOutputFilterByType DEFLATE text/html application/xhtml+xml text/plain text/xml text/css application/json text/javascript application/javascript application/x-javascript | |
BrowserMatch ^Mozilla/4 gzip-only-text/html | |
BrowserMatch ^Mozilla/4\.0[678] no-gzip | |
BrowserMatch \bMSIE !no-gzip !gzip-only-text/htm | |
# Don't compress images | |
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary | |
# DeflateCompressionLevel 9 | |
</IfModule> | |