64 lines
2.8 KiB
Cheetah
64 lines
2.8 KiB
Cheetah
{# 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 = {
|
|
'interfaces': site.get('interface', '*').split(),
|
|
'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', {}),
|
|
} %}
|
|
|
|
<VirtualHost {%- for intf in vals.interfaces %} {{intf}}:{{ vals.port }}{% endfor -%}>
|
|
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 %}
|
|
</VirtualHost>
|