Modified vagrantfile and missing templates
authorLorin Hochstein <lorin.hochstein@sendgrid.com>
Sat, 7 Feb 2015 02:52:16 +0000 (21:52 -0500)
committerLorin Hochstein <lorin.hochstein@sendgrid.com>
Sat, 7 Feb 2015 02:52:16 +0000 (21:52 -0500)
ch06/playbooks/Vagrantfile
ch06/playbooks/templates/gunicorn.conf.py.j2 [new file with mode: 0644]
ch06/playbooks/templates/nginx.conf.j2 [new file with mode: 0644]
ch06/playbooks/templates/supervisor.conf.j2 [new file with mode: 0644]

index ec7e77b..3ed3d2d 100644 (file)
@@ -2,6 +2,5 @@ VAGRANTFILE_API_VERSION = "2"
 
 Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
   config.vm.box = "ubuntu/trusty64"
-  config.vm.network "forwarded_port", guest: 80, host: 8080
-  config.vm.network "forwarded_port", guest: 443, host: 8443
+  config.vm.network "private_network", ip: "192.168.33.10"
 end
diff --git a/ch06/playbooks/templates/gunicorn.conf.py.j2 b/ch06/playbooks/templates/gunicorn.conf.py.j2
new file mode 100644 (file)
index 0000000..7a3d665
--- /dev/null
@@ -0,0 +1,7 @@
+from __future__ import unicode_literals
+import multiprocessing
+
+bind = "127.0.0.1:{{ gunicorn_port }}"
+workers = multiprocessing.cpu_count() * 2 + 1
+loglevel = "error"
+proc_name = "{{ proj_name }}"
diff --git a/ch06/playbooks/templates/nginx.conf.j2 b/ch06/playbooks/templates/nginx.conf.j2
new file mode 100644 (file)
index 0000000..0603417
--- /dev/null
@@ -0,0 +1,51 @@
+upstream {{ proj_name }} {
+    server 127.0.0.1:{{ gunicorn_port }};
+}
+
+server {
+
+    listen 80;
+
+    {% if ssl_enabled %}
+    listen 443 ssl;
+    {% endif %}
+    server_name {{ domains|join(", ") }};
+    client_max_body_size 10M;
+    keepalive_timeout    15;
+
+    {% if ssl_enabled %}
+    ssl_certificate      conf/{{ proj_name }}.crt;
+    ssl_certificate_key  conf/{{ proj_name }}.key;
+    ssl_session_cache    shared:SSL:10m;
+    ssl_session_timeout  10m;
+    ssl_ciphers CDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA;
+    ssl_prefer_server_ciphers on;
+    {% endif %}
+
+    location / {
+        proxy_redirect      off;
+        proxy_set_header    Host                    $host;
+        proxy_set_header    X-Real-IP               $remote_addr;
+        proxy_set_header    X-Forwarded-For         $proxy_add_x_forwarded_for;
+        proxy_set_header    X-Forwarded-Protocol    $scheme;
+        proxy_pass          http://{{ proj_name }};
+    }
+
+    location /static/ {
+        root            {{ proj_path }};
+        access_log      off;
+        log_not_found   off;
+    }
+
+    location /robots.txt {
+        root            {{ proj_path }}/static;
+        access_log      off;
+        log_not_found   off;
+    }
+
+    location /favicon.ico {
+        root            {{ proj_path }}/static/img;
+        access_log      off;
+        log_not_found   off;
+    }
+}
diff --git a/ch06/playbooks/templates/supervisor.conf.j2 b/ch06/playbooks/templates/supervisor.conf.j2
new file mode 100644 (file)
index 0000000..44574f6
--- /dev/null
@@ -0,0 +1,11 @@
+[group: {{proj_name}}]
+programs=gunicorn_{{ proj_name }}
+
+[program:gunicorn_{{ proj_name }}]
+command={{ venv_path }}/bin/gunicorn_django -c gunicorn.conf.py -p gunicorn.pid
+directory={{ proj_path }}
+user={{ user }}
+autostart=true
+autorestart=true
+redirect_stderr=true
+environment=LANG="{{ locale }}",LC_ALL="{{ locale }}",LC_LANG="{{ locale }}"