diff --git a/component/apache/buildout.cfg b/component/apache/buildout.cfg index 0a8b54d78986589ca41feb5bc903e582129df54e..3efe817b19197fb481d40dbc186922a40e654429 100644 --- a/component/apache/buildout.cfg +++ b/component/apache/buildout.cfg @@ -32,10 +32,10 @@ md5sum = 6f3417691c7a27090f36e7cf4d94b36e recipe = slapos.recipe.cmmi depends = ${gdbm:version} -version = 2.4.9 +version = 2.4.10 revision = 1 url = http://mir2.ovh.net/ftp.apache.org/dist/httpd/httpd-${:version}.tar.bz2 -md5sum = 2ef4e65353497606b24fa9bb3e5a3c40 +md5sum = 44543dff14a4ebc1e9e2d86780507156 configure-command = cp -ar ${apr:location}/apr-${apr:version} srclib/apr/; cp -ar ${apr-util:location}/apr-util-${apr-util:version} srclib/apr-util; ./configure configure-options = --prefix=${buildout:parts-directory}/${:_buildout_section_name_} --disable-static diff --git a/component/binutils/buildout.cfg b/component/binutils/buildout.cfg index 2061c3a298e9bdcfe6faadecdd72803b38498925..969dbb6e6afc081e00a92488ba89a8d4989a7591 100644 --- a/component/binutils/buildout.cfg +++ b/component/binutils/buildout.cfg @@ -2,7 +2,15 @@ parts = binutils +extends = + ../bison/buildout.cfg + ../zlib/buildout.cfg + [binutils] recipe = slapos.recipe.cmmi url = http://ftp.gnu.org/gnu/binutils/binutils-2.21.1.tar.bz2 md5sum = bde820eac53fa3a8d8696667418557ad +environment = + PATH=${bison:location}/bin:%(PATH)s + CPPFLAGS=-I${zlib:location}/include + LDFLAGS=-L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib diff --git a/component/tcl/buildout.cfg b/component/tcl/buildout.cfg index 65e0f3dd0f3440cfd52e9fb49791df4bba79d3a7..2a1c060aedb9a295d700307cc4478b99270981d6 100644 --- a/component/tcl/buildout.cfg +++ b/component/tcl/buildout.cfg @@ -1,17 +1,12 @@ [buildout] parts = tcl -[tcl-package] -recipe = hexagonit.recipe.download +[tcl] +recipe = slapos.recipe.cmmi url = http://prdownloads.sourceforge.net/tcl/tcl8.5.13-src.tar.gz md5sum = fa3a9bf9b2d6ed2431f1baa46f4058b8 -strip-top-level-dir = true - -[tcl] -recipe = plone.recipe.command location = ${buildout:parts-directory}/${:_buildout_section_name_} -command = cd ${tcl-package:location}/unix && - ./configure --prefix=${:location} && - make && - make test && - make install \ No newline at end of file +configure-command = ./unix/configure +configure-options = + --prefix=${:location} + --with-encoding=utf-8 diff --git a/component/trafficserver/buildout.cfg b/component/trafficserver/buildout.cfg index c71db91a55f4111d6d18bfa9f3db1a4d99c73142..cd7e016e373ab78b48c6ad5ac2de8e0bd90956d8 100644 --- a/component/trafficserver/buildout.cfg +++ b/component/trafficserver/buildout.cfg @@ -7,7 +7,7 @@ extends = ../../component/make/buildout.cfg ../../component/openssl/buildout.cfg ../../component/tcl/buildout.cfg - ../../component/libexpat/buildout.cfg + ../../component/libxml2/buildout.cfg ../../component/pcre/buildout.cfg ../../component/libcap/buildout.cfg ../../component/flex/buildout.cfg @@ -25,16 +25,19 @@ md5sum = 18f7d56650cba260c8cce3bf4abfa56c configure-options = --prefix=${buildout:parts-directory}/${:_buildout_section_name_} --with-openssl=${openssl:location} - --with-expat=${libexpat:location} + --with-xml=libxml2 + --with-libxml2=${libxml2:location} --with-pcre=${pcre:location} --with-lua=${lua:location} --with-ncurses=${ncurses:location} --with-tcl=${tcl:location}/lib/ + --with-lzma=${xz-utils:location} --with-zlib=${zlib:location} + --disable-hwloc --enable-experimental-plugins environment = PATH=${make:location}/bin:${libtool:location}/bin:${pkgconfig:location}/bin:%(PATH)s - LDFLAGS = -L${tcl:location}/lib -Wl,-rpath=${tcl:location}/lib -Wl,-rpath=${openssl:location}/lib + LDFLAGS =-L${libxml2:location}/lib -Wl,-rpath=${libxml2:location}/lib -L${tcl:location}/lib -Wl,-rpath=${tcl:location}/lib -Wl,-rpath=${openssl:location}/lib -L${zlib:location}/lib -Wl,-rpath=${zlib:location}/lib make-target = check install diff --git a/software/apache-frontend/common.cfg b/software/apache-frontend/common.cfg index cf08c20a61a4d73604fee2bab52cab0958964383..eaa70202448c7309433ed11fc2fadf7bd801ea0c 100644 --- a/software/apache-frontend/common.cfg +++ b/software/apache-frontend/common.cfg @@ -67,20 +67,20 @@ mode = 0644 [template-apache-frontend] recipe = slapos.recipe.template url = ${:_profile_base_location_}/instance-apache-frontend.cfg -md5sum = 05216295ad8ab5ebf34644ac253f0db6 +md5sum = 5388e77d520135b7491f1aeddac5f4e0 output = ${buildout:directory}/template-apache-frontend.cfg mode = 0644 [template-apache-replicate] recipe = slapos.recipe.build:download url = ${:_profile_base_location_}/instance-apache-replicate.cfg.in -md5sum = 5de85259870dc4364954018041561882 +md5sum = 8ec70e6276daaed240faa5059514929c mode = 0644 [template-slave-list] recipe = slapos.recipe.build:download url = ${:_profile_base_location_}/templates/apache-custom-slave-list.cfg.in -md5sum = 5c49a66a0fe4b92ab21ef7148ea4e5ff +md5sum = c896e60c95ca387a75a163d817155d98 mode = 640 [template-slave-configuration] @@ -135,7 +135,7 @@ mode = 640 [template-default-slave-virtualhost] recipe = slapos.recipe.build:download url = ${:_profile_base_location_}/templates/default-virtualhost.conf.in -md5sum = ac845c0fa3835832307a0e7323cb339d +md5sum = 2241f952bc1072af77e87a6d5bb8b4f9 mode = 640 [template-log-access] diff --git a/software/apache-frontend/instance-apache-frontend.cfg b/software/apache-frontend/instance-apache-frontend.cfg index aef88b111a5b8f4887e4e40ad6a2c572b40496be..b2cdcc0eaf346cc4e8a5279ab491d410d2a3df4e 100644 --- a/software/apache-frontend/instance-apache-frontend.cfg +++ b/software/apache-frontend/instance-apache-frontend.cfg @@ -168,7 +168,8 @@ extra-context = key local_ipv4 instance-parameter:ipv4-random key cache_port apache-configuration:cache-port raw empty_template ${template-empty:target} - raw template_slave_configuration ${template-slave-configuration:target} + raw template_custom_slave_configuration ${template-slave-configuration:target} + raw template_default_slave_configuration ${template-default-slave-virtualhost:target} raw template_rewrite_cached ${template-rewrite-cached:target} raw software_type single-custom-personal section logrotate_dict logrotate diff --git a/software/apache-frontend/instance-apache-replicate.cfg.in b/software/apache-frontend/instance-apache-replicate.cfg.in index dd0146de105e1464901c798aa8c3bbbee89fc084..ecf0e8f39afa12fe97289ebbd6bceb21c0a6e989 100644 --- a/software/apache-frontend/instance-apache-replicate.cfg.in +++ b/software/apache-frontend/instance-apache-replicate.cfg.in @@ -61,6 +61,17 @@ sla-{{ parameter }} = {{ slapparameter_dict.pop( sla_key + parameter ) }} {% endif -%} {% endfor -%} +{% set authorized_slave_string = slapparameter_dict.pop('-frontend-authorized-slave-string', '') -%} +{% set authorized_slave_list = [] %} +{% set rejected_slave_list = [] %} +{% for slave in slave_instance_list %} +{% if not (slave.has_key('apache_custom_http') and not slave.get('slave_reference') in authorized_slave_string) %} +{% do authorized_slave_list.append(slave) %} +{% else %} +{% do rejected_slave_list.append(slave.get('slave_reference')) %} +{% endif %} +{% endfor -%} + [replicate] <= slap-connection recipe = slapos.cookbook:requestoptional @@ -76,13 +87,16 @@ config = {{ ' '.join(slapparameter_dict.keys()) + ' ' + slave_list_name }} {% for parameter, value in slapparameter_dict.iteritems() -%} config-{{parameter}} = {{ value }} {% endfor -%} -config-{{ slave_list_name }} = {{ json_module.dumps(slave_instance_list) }} +config-{{ slave_list_name }} = {{ json_module.dumps(authorized_slave_list) }} connection-monitor_url = [publish-information] recipe = slapos.cookbook:publish domain = {{ slapparameter_dict.get('domain') }} slave-amount = {{ slave_instance_list | length }} +accepted-slave-amount = {{ authorized_slave_list | length }} +rejected-slave-amount = {{ rejected_slave_list | length }} +rejected-slave-list = {{ json_module.dumps(rejected_slave_list) }} {% for frontend in frontend_section_list %} {{ frontend }}-monitor-url = {{ '${' + frontend + ':connection-monitor_url}' }} {% endfor -%} diff --git a/software/apache-frontend/instance-slave-apache-input-schema.json b/software/apache-frontend/instance-slave-apache-input-schema.json new file mode 100644 index 0000000000000000000000000000000000000000..7220ac949b231000f29e2c87dc911f25818019cf --- /dev/null +++ b/software/apache-frontend/instance-slave-apache-input-schema.json @@ -0,0 +1,80 @@ +{ + "type": "object", + "$schema": "http://json-schema.org/draft-04/schema", + + "title": "Input Parameters", + "properties": { + "url": { + "title": "Backend URL", + "description": "Url of the backend", + "type": "string" + }, + "custom_domain": { + "title": "Custom Domain", + "description": "Custom Domain to use for the website", + "type": "string", + "pattern": "^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$" + }, + "type": { + "title": "Backend Type", + "description": "Type of the backend", + "type": "string", + "default": "", + "enum": ["", "zope"] + }, + + "path": { + "title": "Backend Path", + "description": "Path to proxy to in the backend", + "type": "string", + "default": "" + }, + + "ssl_crt": { + "title": "SSL Certificate", + "description": "SSL Certificate", + "type": "string", + "default": "" + }, + "ssl_key": { + "title": "SSL Key", + "description": "SSL Key", + "type": "string", + "default": "" + }, + + "ssl_ca_crt": { + "title": "SSL Certificate Authority's Certificate", + "description": "SSL Key", + "type": "string", + "default": "" + }, + "https-only": { + "title": "HTTPS Only", + "description": "If set to true, http request are redirect to https", + "type": "string", + "default": "false", + "enum": ["false", "true"] + }, + + "enable_cache": { + "title": "Enable Cache", + "description": "If set to true, the cache is used", + "type": "string", + "default": "false", + "enum": ["false", "true"] + }, + "apache_custom_http": { + "title": "HTTP configuration", + "description": "Raw http configuration in python template format. Your site will be rejected if you use it without notification and approval of the frontend adminastrator", + "default": "", + "type": "string" + }, + "apache_custom_https": { + "title": "HTTPS configuration", + "description": "Raw https configuration in python template format. Your site will be rejected if you use it without notification and approval of the frontend adminastrator", + "default": "", + "type": "string" + } + } +} diff --git a/software/apache-frontend/software.cfg b/software/apache-frontend/software.cfg index fb94e6da92ca4fca2654e2d798261452f2900693..0fac0c0b00920358dc427aed21decb369b65344a 100644 --- a/software/apache-frontend/software.cfg +++ b/software/apache-frontend/software.cfg @@ -5,53 +5,52 @@ extends = common.cfg Jinja2 = 2.7.3 MarkupSafe = 0.23 PyRSS2Gen = 1.1 -Werkzeug = 0.9.4 -apache-libcloud = 0.15.0 +Werkzeug = 0.9.6 +apache-libcloud = 0.15.1 async = 0.6.1 buildout-versions = 1.7 -cffi = 0.8.2 +cffi = 0.8.6 cmd2 = 0.6.7 cns.recipe.symlink = 0.2.3 collective.recipe.template = 1.11 -cryptography = 0.4 +cryptography = 0.5.2 gitdb = 0.5.4 -hexagonit.recipe.cmmi = 2.0 inotifyx = 0.2.0-1 itsdangerous = 0.24 lxml = 3.3.5 meld3 = 1.0.0 mr.developer = 1.30 -netaddr = 0.7.11 +netaddr = 0.7.12 plone.recipe.command = 1.1 pyOpenSSL = 0.14 pycrypto = 2.6.1 pyparsing = 2.0.2 -pytz = 2014.3 +pytz = 2014.4 rdiff-backup = 1.0.5 six = 1.7.3 slapos.cookbook = 0.87 slapos.recipe.build = 0.12 slapos.recipe.cmmi = 0.2 slapos.recipe.template = 2.5 -slapos.toolbox = 0.39.2 +slapos.toolbox = 0.39.3 smmap = 0.8.2 stevedore = 0.15 # Required by: -# slapos.core==1.0.5 -# slapos.toolbox==0.39.2 +# slapos.core==1.1.2 +# slapos.toolbox==0.39.3 Flask = 0.10.1 # Required by: -# slapos.toolbox==0.39.2 +# slapos.toolbox==0.39.3 GitPython = 0.3.2.RC1 # Required by: -# slapos.toolbox==0.39.2 +# slapos.toolbox==0.39.3 atomize = 0.2.0 # Required by: -# slapos.core==1.0.5 +# slapos.core==1.1.2 cliff = 1.6.1 # Required by: @@ -59,7 +58,7 @@ cliff = 1.6.1 ecdsa = 0.11 # Required by: -# slapos.toolbox==0.39.2 +# slapos.toolbox==0.39.3 feedparser = 5.1.3 # Required by: @@ -67,39 +66,40 @@ feedparser = 5.1.3 lock-file = 2.0 # Required by: -# slapos.core==1.0.5 +# slapos.core==1.1.2 netifaces = 0.10.4 # Required by: -# slapos.toolbox==0.39.2 +# slapos.toolbox==0.39.3 paramiko = 1.14.0 # Required by: -# slapos.toolbox==0.39.2 +# slapos.core==1.1.2 +# slapos.toolbox==0.39.3 psutil = 2.1.1 # Required by: -# cffi==0.8.2 +# cffi==0.8.6 pycparser = 2.10 # Required by: -# slapos.core==1.0.5 +# slapos.core==1.1.2 requests = 2.3.0 # Required by: -# slapos.toolbox==0.39.2 -slapos.core = 1.0.5 +# slapos.toolbox==0.39.3 +slapos.core = 1.1.2 # Required by: -# slapos.core==1.0.5 +# slapos.core==1.1.2 supervisor = 3.0 # Required by: -# slapos.toolbox==0.39.2 +# slapos.toolbox==0.39.3 xml-marshaller = 0.9.7 # Required by: -# slapos.core==1.0.5 +# slapos.core==1.1.2 zope.interface = 4.1.1 [networkcache] diff --git a/software/apache-frontend/templates/apache-custom-slave-list.cfg.in b/software/apache-frontend/templates/apache-custom-slave-list.cfg.in index ea1d0306ae5c42ddf37a013ca24e317849c735b8..c9849f0e78119a6df7f889ae1b1f2563b1c31405 100644 --- a/software/apache-frontend/templates/apache-custom-slave-list.cfg.in +++ b/software/apache-frontend/templates/apache-custom-slave-list.cfg.in @@ -3,6 +3,7 @@ {% set cached_server_dict = {} -%} {% set part_list = [] -%} {% set cache_access = "http://%s:%s" % (local_ipv4, cache_port) -%} +{% set TRUE_VALUES = ['y', 'yes', '1', 'true'] -%} {% set generic_instance_parameter_dict = {'cache_access': cache_access,} -%} {% set slave_log_dict = {} -%} {% if extra_slave_instance_list -%} @@ -29,8 +30,11 @@ context = {% set slave_reference = slave_instance.get('slave_reference') -%} {% set slave_section_title = 'dynamic-template-slave-instance-%s' % slave_reference -%} {% set slave_parameter_dict = generic_instance_parameter_dict.copy() -%} +{% set slave_publish_dict = {} -%} {% do part_list.append(slave_section_title) -%} +############################ +#### Set Slave Log Directory and access {% set slave_directory_section = slave_reference + "-directory" -%} {% set slave_log_folder = logrotate_dict.get('backup') + '/' + slave_reference + "-logs" -%} @@ -41,6 +45,8 @@ log-folder = {{slave_log_folder}} # Set Up log files {% do slave_parameter_dict.__setitem__('access_log', '/'.join([apache_log_directory, '%s_access_log' % slave_reference])) -%} {% do slave_parameter_dict.__setitem__('error_log', '/'.join([apache_log_directory, '%s_error_log' % slave_reference])) -%} +{% do slave_instance.__setitem__('access_log', slave_parameter_dict.get('access_log')) -%} +{% do slave_instance.__setitem__('error_log', slave_parameter_dict.get('error_log')) -%} # Set slave logrotate entry {% set slave_logrotate_section = slave_reference + "-logs" -%} @@ -85,17 +91,11 @@ command = {{frontend_configuration.get('apache-directory')}}/bin/htpasswd -cb ${ # Add slave log directory to the slave log access dict {% do slave_log_dict.__setitem__(slave_reference, slave_log_folder) %} -# Set up apache configuration file for slave -[{{ slave_section_title }}] -< = jinja2-template-base -template = {{ template_slave_configuration }} -filename = {{ '%s.conf' % slave_reference }} -extra-context = - key apache_custom_https {{ 'slave-instance-%s-configuration:apache_custom_https' % slave_reference }} - key apache_custom_http {{ 'slave-instance-%s-configuration:apache_custom_http' % slave_reference }} - raw https_port {{ https_port }} - raw http_port {{ http_port }} -{{ '\n' }} +{% set slave_log_access_url = 'https://' + slave_reference + ':${'+ slave_password_section +':passwd}@[' + frontend_configuration.get('apache-ipv6') + ']:' + frontend_configuration.get('apache-https-port') + '/' + slave_reference.lower() + '/' %} +{% do slave_publish_dict.__setitem__('log-access', slave_log_access_url) %} + +############################ +#### Set Slave Certificates if needed # Set ssl certificates for each slave {% for cert_name in ('ssl_key', 'ssl_crt', 'ssl_ca_crt', 'ssl_csr')-%} @@ -104,6 +104,7 @@ extra-context = {% set cert_file = '/'.join([custom_ssl_directory, cert_title.replace('-','.')]) -%} {% do part_list.append(cert_title) -%} {% do slave_parameter_dict.__setitem__(cert_name, cert_file) -%} +{% do slave_instance.__setitem__('path_to_' + cert_name, cert_file) -%} # Store certificates on fs [{{ cert_title }}] < = jinja2-template-base @@ -117,31 +118,95 @@ value = {{ dumps(slave_instance.get(cert_name)) }} {% endif -%} {% endfor -%} +############################ +#### Set Slave Configuration + +{% if slave_instance.has_key('apache_custom_http') %} +#### Set Configuration for custom slaves + +# Set up apache configuration file for slave +[{{ slave_section_title }}] +< = jinja2-template-base +template = {{ template_custom_slave_configuration }} +filename = {{ '%s.conf' % slave_reference }} +extra-context = + key apache_custom_https {{ 'slave-instance-%s-configuration:apache_custom_https' % slave_reference }} + key apache_custom_http {{ 'slave-instance-%s-configuration:apache_custom_http' % slave_reference }} + raw https_port {{ https_port }} + raw http_port {{ http_port }} +{{ '\n' }} + + # Set apache configuration value for slave [{{ ('slave-instance-%s-configuration' % slave_reference) }}] -{% set apache_custom_http = ((slave_instance.get('apache_custom_http', '')) % slave_parameter_dict) -%} -{% set apache_custom_https = ((slave_instance.get('apache_custom_https', '')) % slave_parameter_dict) -%} +{% set apache_custom_http = ((slave_instance.get('apache_custom_http', '')) % slave_parameter_dict) -%} +{% set apache_custom_https = ((slave_instance.get('apache_custom_https', '')) % slave_parameter_dict) -%} apache_custom_http = {{ dumps(apache_custom_http) }} apache_custom_https = {{ dumps(apache_custom_https) }} {{ '\n' }} # The slave use cache -{% if 'enable_cache' in slave_instance and 'url' in slave_instance and 'domain' in slave_instance -%} -{% do cached_server_dict.__setitem__(slave_instance.get('domain'), slave_instance.get('url')) -%} +{% if 'enable_cache' in slave_instance and 'url' in slave_instance and 'domain' in slave_instance -%} +{% do cached_server_dict.__setitem__(slave_instance.get('domain'), slave_instance.get('url')) -%} +{% endif -%} + +# Publish information +{% do slave_publish_dict.update(**{'slave-reference':slave_instance.get('slave_reference'), 'public-ipv4':public_ipv4, 'log-access': slave_log_access_url}) %} + +{% else %} +#### Set Configuration for default slaves + +# Set slave domain if none was defined +{% if slave_instance.get('custom_domain', None) == None -%} +{% do slave_instance.__setitem__('custom_domain', "%s.%s" % (slave_instance.get('slave_reference').replace("-", "").lower(), slapparameter_dict.get('domain'))) -%} +{% endif -%} + +# The slave use cache +# Next line is forbidden and people who copy it will be hanged short +{% set enable_cache = ('' ~ slave_instance.get('enable_cache', '')).lower() in TRUE_VALUES -%} +{% if enable_cache -%} +{% do cached_server_dict.__setitem__(slave_instance.get('custom_domain'), slave_instance.get('url')) -%} +{% do slave_instance.__setitem__('url', cache_access) -%} +{% endif -%} +{% do part_list.append(slave_section_title) -%} + + +[{{ ('slave-instance-%s-configuration' % slave_reference) }}] +{% for key, value in slave_instance.iteritems() -%} +{{ key }} = {{ dumps(value) }} +{% endfor %} + +# Set up slave configuration file +[{{ slave_section_title }}] +< = jinja2-template-base +template = {{ template_default_slave_configuration }} +filename = {{ '%s.conf' % slave_reference }} + +extensions = jinja2.ext.do +extra-context = + section slave_parameter {{ 'slave-instance-%s-configuration' % slave_reference }} + raw https_port {{ https_port }} + raw http_port {{ http_port }} +{{ '\n' }} + +{% do slave_publish_dict.update(**{'slave-reference':slave_instance.get('slave_reference'), 'public-ipv4':public_ipv4, 'domain':slave_instance.get('custom_domain'), 'url':"http://%s" % slave_instance.get('custom_domain'), 'site_url':"http://%s" % slave_instance.get('custom_domain')}) %} + {% endif -%} +############################ +#### Publish Slave Information + # Publish slave information -{% set slave_log_access_url = 'https://' + slave_reference + ':${'+ slave_password_section +':passwd}@[' + frontend_configuration.get('apache-ipv6') + ']:' + frontend_configuration.get('apache-https-port') + '/' + slave_reference.lower() + '/' %} {% if not extra_slave_instance_list -%} {% set publish_section_title = 'publish-%s-connection-information' % slave_instance.get('slave_reference') -%} {% do part_list.append(publish_section_title) -%} [{{ publish_section_title }}] recipe = slapos.cookbook:publish -public-ipv4 = {{ public_ipv4 }} -log-access = {{ slave_log_access_url }} --slave-reference = {{ slave_instance.get('slave_reference') }} +{% for key, value in slave_publish_dict.iteritems() %} +{{ key }} = {{ value }} +{% endfor %} {% else -%} -{% do slave_instance_information_list.append({'slave-reference':slave_instance.get('slave_reference'), 'public-ipv4':public_ipv4, 'log-access': slave_log_access_url}) -%} +{% do slave_instance_information_list.append(slave_publish_dict) -%} {% endif -%} {% endfor -%} diff --git a/software/apache-frontend/templates/default-virtualhost.conf.in b/software/apache-frontend/templates/default-virtualhost.conf.in index 81aa2742423f67e7dc1c60a9d8a0d0fb9ba6f02c..dcc425189c142c26ca87a0307bfb818f8bc0f426 100644 --- a/software/apache-frontend/templates/default-virtualhost.conf.in +++ b/software/apache-frontend/templates/default-virtualhost.conf.in @@ -1,8 +1,8 @@ {% set TRUE_VALUES = ['y', 'yes', '1', 'true'] -%} <VirtualHost *:{{ https_port }}> - ServerName {{ slave_parameter.get('domain') }} - ServerAlias {{ slave_parameter.get('domain') }} + ServerName {{ slave_parameter.get('custom_domain') }} + ServerAlias {{ slave_parameter.get('custom_domain') }} SSLEngine on SSLProxyEngine on @@ -23,10 +23,10 @@ # One Slave two logs - ErrorLog "{{ error_log }}" + ErrorLog "{{ slave_parameter.get('error_log') }}" LogLevel info LogFormat "%h %l %{REMOTE_USER}i %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D" combined - CustomLog "{{ access_log }}" combined + CustomLog "{{ slave_parameter.get('access_log') }}" combined # Rewrite part ProxyVia On @@ -38,15 +38,15 @@ # First, we check if we have a zope backend server # If so, let's use Virtual Host Daemon rewrite # We suppose that Apache listens to 443 (even indirectly thanks to things like iptables) - RewriteRule ^/(.*)$ {{ slave_parameter.get('url', '') }}/VirtualHostBase/https/{{ slave_parameter.get('domain', '') }}:443/{{ slave_parameter.get('path', '') }}/VirtualHostRoot/$1 [L,P] + RewriteRule ^/(.*)$ {{ slave_parameter.get('url', '') }}/VirtualHostBase/https/{{ slave_parameter.get('custom_domain', '') }}:443/{{ slave_parameter.get('path', '') }}/VirtualHostRoot/$1 [L,P] {% else -%} RewriteRule ^/(.*)$ {{ slave_parameter.get('url', '') }}/$1 [L,P] {% endif -%} </VirtualHost> <VirtualHost *:{{ http_port }}> - ServerName {{ slave_parameter.get('domain') }} - ServerAlias {{ slave_parameter.get('domain') }} + ServerName {{ slave_parameter.get('custom_domain') }} + ServerAlias {{ slave_parameter.get('custom_domain') }} SSLProxyEngine on # Rewrite part ProxyVia On @@ -55,10 +55,10 @@ RewriteEngine On # One Slave two logs - ErrorLog "{{ error_log }}" + ErrorLog "{{ slave_parameter.get('error_log') }}" LogLevel info LogFormat "%h %l %{REMOTE_USER}i %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D" combined - CustomLog "{{ access_log }}" combined + CustomLog "{{ slave_parameter.get('access_log') }}" combined # Remove "Secure" from cookies, as backend may be https Header edit Set-Cookie "(?i)^(.+);secure$" "$1" @@ -75,7 +75,7 @@ # First, we check if we have a zope backend server # If so, let's use Virtual Host Daemon rewrite # We suppose that Apache listens to 80 (even indirectly thanks to things like iptables) - RewriteRule ^/(.*)$ {{ slave_parameter.get('url', '') }}/VirtualHostBase/http/{{ slave_parameter.get('domain', '') }}:80/{{ slave_parameter.get('path', '') }}/VirtualHostRoot/$1 [L,P] + RewriteRule ^/(.*)$ {{ slave_parameter.get('url', '') }}/VirtualHostBase/http/{{ slave_parameter.get('custom_domain', '') }}:80/{{ slave_parameter.get('path', '') }}/VirtualHostRoot/$1 [L,P] {% else -%} RewriteRule ^/(.*)$ {{ slave_parameter.get('url', '') }}/$1 [L,P] {% endif -%}