From 60164f99d66905dce6dcf9315f0cb2da41b82cc0 Mon Sep 17 00:00:00 2001 From: Marco Mariani <marco.mariani@nexedi.com> Date: Fri, 13 Jun 2014 14:51:37 +0200 Subject: [PATCH] abilian: [WIP] added nginx instance --- .../extranet_spr/instance-nginx.cfg.in | 43 ++++++++++++++++++ software/abilian/extranet_spr/instance.cfg.in | 18 +++++--- software/abilian/extranet_spr/software.cfg | 30 +++++++++++-- .../extranet_spr/template/nginx.conf.in | 45 +++++++++++++++++++ 4 files changed, 128 insertions(+), 8 deletions(-) create mode 100644 software/abilian/extranet_spr/instance-nginx.cfg.in create mode 100644 software/abilian/extranet_spr/template/nginx.conf.in diff --git a/software/abilian/extranet_spr/instance-nginx.cfg.in b/software/abilian/extranet_spr/instance-nginx.cfg.in new file mode 100644 index 000000000..9d3112113 --- /dev/null +++ b/software/abilian/extranet_spr/instance-nginx.cfg.in @@ -0,0 +1,43 @@ +[buildout] +parts = + nginx + + +# Define egg directories to be the one from Software Release +# (/opt/slapgrid/...) +eggs-directory = ${buildout:eggs-directory} +develop-eggs-directory = ${buildout:develop-eggs-directory} +offline = true + + + +[nginx-configuration] +recipe = slapos.recipe.template:jinja2 +template = ${nginx.conf.in:location}/nginx.conf.in +rendered = $${directories:nginx-configuration}/nginx.conf +context = + raw pid_file $${directories:run}/nginx.pid + raw error_log $${directories:log}/nginx.log + raw server_name test + raw ssl_certificate $${directories:home}/server.crt + raw ssl_certificate_key $${directories:home}/server.key + raw access_log $${directories:log}/test-ssl-access.log + raw ipv6 $${instance-parameters:ipv6-random} + + + +#configuration-template-path = ${nginx.conf.in:location}/nginx.conf.in +# +#vhost-configuration-directory-location = $${directories:nginx-vhost-configuration} +#nginx-prefix = ${nginx-enable-sub:location} +#nginx-temp-path = $${directories:nginx-temp-path} +#home-directory = $${directories:home} + + +[nginx] +recipe = slapos.cookbook:wrapper +nginx-executable = $${:nginx-prefix}/sbin/nginx +nginx-prefix = ${nginx-enable-sub:location} +command-line = $${:nginx-executable} -c $${nginx-configuration:rendered} -p $${directories:home} +wrapper-path = $${directories:services}/nginx + diff --git a/software/abilian/extranet_spr/instance.cfg.in b/software/abilian/extranet_spr/instance.cfg.in index 66542ee28..42e9b762b 100644 --- a/software/abilian/extranet_spr/instance.cfg.in +++ b/software/abilian/extranet_spr/instance.cfg.in @@ -6,6 +6,7 @@ offline = true extends = ${instance-postgres:output} + ${instance-nginx:output} ${instance-extranet:output} ${instance-redis:output} ${instance-environment:output} @@ -27,6 +28,7 @@ parts = cron postgres-backup cron-postgres-backup + nginx @@ -67,24 +69,30 @@ mode = 0644 [directories] recipe = slapos.cookbook:mkdirectory -bin = $${buildout:directory}/bin -etc = $${buildout:directory}/etc +home = $${buildout:directory} +bin = $${:home}/bin +etc = $${:home}/etc cron-entries = $${:etc}/cron.d crontabs = $${:etc}/crontabs cronstamps = $${:etc}/cronstamps run = $${:var}/run scripts = $${:etc}/run -srv = $${buildout:directory}/srv +srv = $${:home}/srv services = $${:etc}/service promises = $${:etc}/promise -var = $${buildout:directory}/var +var = $${:home}/var backup = $${:var}/backup extranet_spr-instance = $${:var}/extranet_spr-instance cache = $${:extranet_spr-instance}/cache data = $${:extranet_spr-instance}/data -log = $${:var}/log +log = $${:home}/logs tmp = $${:var}/tmp whoosh = $${:data}/whoosh +nginx-configuration = $${:etc}/nginx +nginx-vhost-configuration = $${:nginx-configuration}/vhost +nginx-cache = $${:var}/cache +nginx-temp-path = $${:srv}/nginx-proxy + [cron-simplelogger] diff --git a/software/abilian/extranet_spr/software.cfg b/software/abilian/extranet_spr/software.cfg index f6d06d4ec..87fe3c92c 100644 --- a/software/abilian/extranet_spr/software.cfg +++ b/software/abilian/extranet_spr/software.cfg @@ -19,6 +19,9 @@ extends = ../../../component/fontconfig/buildout.cfg ../../../component/libreoffice-bin/buildout.cfg + ../../../component/nginx/buildout.cfg + + parts = slapos-cookbook @@ -59,9 +62,12 @@ parts = Extranet_SPR nginx - instance instance-postgres instance-redis + instance-nginx + instance-environment + instance-extranet + instance config-staging-py-template config-production-py-template abilian-config @@ -156,7 +162,7 @@ egg-link = Abilian-Core.egg-link [slapos-cookbook-repository] < = git-repository repository = http://git.erp5.org/repos/slapos.git -branch = systematic +branch = systematic-nginx [slapos-cookbook-repository-check] < = git-repository-check @@ -222,6 +228,17 @@ configure-command = -Dusethreads +[nginx.conf.in] +recipe = slapos.recipe.download +url = ${:_profile_base_location_}/template/${:_buildout_section_name_} +md5sum = 9f34ccfa2a7b1ebdf656e99d8624047f +download-only = true +mode = 0644 +location = ${buildout:parts-directory}/${:_buildout_section_name_} + + + + #---------------- #-- Instance-level buildout profiles. @@ -229,7 +246,7 @@ configure-command = recipe = slapos.recipe.template url = ${:_profile_base_location_}/instance.cfg.in output = ${buildout:directory}/instance.cfg -md5sum = 3b6105aa9335141c2d73871bdde80e9d +md5sum = 7f35cb12406544a678f81763f3f0e0ba mode = 0644 [instance-postgres] @@ -246,6 +263,13 @@ output = ${buildout:directory}/instance-redis.cfg md5sum = a322af67bcfd73f1782494c147499071 mode = 0644 +[instance-nginx] +recipe = slapos.recipe.template +url = ${:_profile_base_location_}/instance-nginx.cfg.in +output = ${buildout:directory}/instance-nginx.cfg +md5sum = 1c975a08096aa3eb52e460efbb660e5c +mode = 0644 + [instance-extranet] recipe = slapos.recipe.template url = ${:_profile_base_location_}/instance-extranet.cfg.in diff --git a/software/abilian/extranet_spr/template/nginx.conf.in b/software/abilian/extranet_spr/template/nginx.conf.in new file mode 100644 index 000000000..2ea98ae58 --- /dev/null +++ b/software/abilian/extranet_spr/template/nginx.conf.in @@ -0,0 +1,45 @@ + +daemon off; + +worker_processes 2; +error_log {{ error_log }} info; + +pid {{ pid_file }}; + +events { + worker_connections 1024; +} + + +http { + + server { + listen listen {{ ipv6 }}:443 ssl; + server_name {{ server_name }}; + + ssl on; + ssl_certificate {{ ssl_certificate }}; + ssl_certificate_key {{ ssl_certificate_key }}; + ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; + ssl_ciphers HIGH:!aNULL:!MD5; + + access_log {{ access_log }}; + + # location /static/ { + # alias %(static_dir)s/; + # } + # + # location /errors/ { + # alias %(root)s/html_maintenance/; + # } + # + # location / { + # proxy_pass http://localhost:%(port)d/; + # include /etc/nginx/proxy_params; + # client_max_body_size 50M; + # error_page 502 503 /errors/nginx_no_service_page.html; + # } + + } + +} -- GitLab