{# Define default values here so the template below can just focus on layout #} {% from "apache/map.jinja" import apache with context %} {% set sitename = site.get('ServerName', id) %} {% set vals = { 'interface': site.get('interface', '*'), 'port': site.get('port', '80'), 'ServerName': sitename, 'ServerAlias': site.get('ServerAlias', 'www.{0}'.format(sitename)), 'ServerAdmin': site.get('ServerAdmin', 'webmaster@{0}'.format(sitename)), 'UseCanonicalName': site.get('UseCanonicalName'), 'LogLevel': site.get('LogLevel', 'warn'), 'ErrorLog': site.get('ErrorLog', '{0}/{1}-error.log'.format(map.logdir, sitename)), 'LogFormat': site.get('LogFormat', '"%h %l %u %t \\\"%r\\\" %>s %O"'), 'CustomLog': site.get('CustomLog', '{0}/{1}-access.log'.format(map.logdir, sitename)), 'ProxyPreserveHost': site.get('ProxyPreserveHost', 'On'), 'ProxyRoute': site.get('ProxyRoute', {}), } %} Listen {{ vals.interface }}:{{ vals.port }} ServerName {{ vals.ServerName }} {% if site.get('ServerAlias') != False %}ServerAlias {{ vals.ServerAlias }}{% endif %} {% if site.get('ServerAdmin') != False %}ServerAdmin {{ vals.ServerAdmin }}{% endif %} {% if site.get('UseCanonicalName') %}UseCanonicalName {{ vals.UseCanonicalName }}{% endif %} {% if site.get('LogLevel') != False %}LogLevel {{ vals.LogLevel }}{% endif %} {% if site.get('ErrorLog') != False %}ErrorLog {{ vals.ErrorLog }}{% endif %} {% if site.get('CustomLog') != False %}CustomLog {{ vals.CustomLog }} {{ vals.LogFormat }}{% endif %} {% if site.get('SSLCertificateFile') %} SSLEngine on SSLCertificateFile {{ site.SSLCertificateFile }} {% if site.get('SSLCertificateKeyFile') %} SSLCertificateKeyFile {{ site.SSLCertificateKeyFile }} {% endif %} {% if site.get('SSLCertificateChainFile') %} SSLCertificateChainFile {{ site.SSLCertificateChainFile}} {% endif %} {% endif %} ProxyPreserveHost {{ vals.ProxyPreserveHost }} {% for proxy, proxyargs in vals.ProxyRoute|dictsort|reverse %} {% set proxyvals = { 'ProxyPassSource': proxyargs.get('ProxyPassSource', '/'), 'ProxyPassTarget': proxyargs.get('ProxyPassTarget', 'https://{0}'.format(sitename)), 'ProxyPassReverseSource': proxyargs.get('ProxyPassReverseSource', '/'), 'ProxyPassReverseTarget': proxyargs.get('ProxyPassReverseTarget', site.get('ProxyPassTarget', 'https://{0}'.format(sitename))), } %} ######### {{proxy}} ######### ProxyPass {{ proxyvals.ProxyPassSource }} {{ proxyvals.ProxyPassTarget }} ProxyPassReverse {{ proxyvals.ProxyPassReverseSource }} {{ proxyvals.ProxyPassReverseTarget }} {% endfor %} {% if site.get('Formula_Append') %} {{ site.Formula_Append|indent(4) }} {% endif %}