]> git.apps.os.sepia.ceph.com Git - ceph-cm-ansible.git/commitdiff
Use nginx as a reverse proxy for paddles 165/head
authorZack Cerza <zack@redhat.com>
Fri, 6 Nov 2015 17:19:43 +0000 (10:19 -0700)
committerZack Cerza <zack@redhat.com>
Fri, 6 Nov 2015 17:19:43 +0000 (10:19 -0700)
This is to avoid timeouts when gunicorn workers are busy.

Signed-off-by: Zack Cerza <zack@redhat.com>
roles/paddles/defaults/main.yml
roles/paddles/tasks/main.yml
roles/paddles/tasks/nginx.yml [new file with mode: 0644]
roles/paddles/templates/nginx.conf [new file with mode: 0644]
roles/paddles/templates/prod.py
roles/paddles/vars/apt_systems.yml

index db99d1382216b02dc5e8068a4385217547b56da8..d51de7d5bd7ce0790021a52a8652c47f044ff36d 100644 (file)
@@ -3,8 +3,6 @@ paddles_user: paddles
 
 paddles_repo: https://github.com/ceph/paddles.git
 
-# Default is to listen on all interfaces
-listen_ip: "0.0.0.0"
 paddles_port: 8080
 
 log_host: localhost
index 41fff2ff29a9f7e17bbe0ebc5376f736adeb6fca..d4476e59c025c2b64f7f5b6eb9a3d1826670d5d8 100644 (file)
@@ -43,3 +43,6 @@
 
 # Configure the system to run paddles as a daemon
 - include: setup_service.yml
+
+# Configure nginx as a reverse proxy
+- include: nginx.yml
diff --git a/roles/paddles/tasks/nginx.yml b/roles/paddles/tasks/nginx.yml
new file mode 100644 (file)
index 0000000..d4c8027
--- /dev/null
@@ -0,0 +1,29 @@
+---
+- name: Disable default nginx config
+  file:
+    name: /etc/nginx/sites-enabled/default
+    state: absent
+
+- name: Ship nginx config
+  template:
+    src: nginx.conf
+    dest: /etc/nginx/sites-available/paddles
+
+- name: Enable nginx config
+  file:
+    src: /etc/nginx/sites-available/paddles
+    dest: /etc/nginx/sites-enabled/paddles
+    state: link
+
+- name: Disable apache httpd
+  service:
+    name: "{{ apache_service }}"
+    enabled: no
+    state: stopped
+
+- name: Enable nginx
+  service:
+    name: nginx
+    enabled: yes
+    state: reloaded
+  changed_when: false
diff --git a/roles/paddles/templates/nginx.conf b/roles/paddles/templates/nginx.conf
new file mode 100644 (file)
index 0000000..d2e68bb
--- /dev/null
@@ -0,0 +1,12 @@
+server {
+        server_name {{ inventory_hostname }};
+        listen {{ ansible_all_ipv4_addresses[0] }}:{{ paddles_port }};
+        proxy_send_timeout 600;
+        proxy_connect_timeout 240;
+        location / {
+           proxy_pass                   http://127.0.0.1:{{ paddles_port }}/;
+           proxy_set_header Host        $host;
+           proxy_set_header X-Real-IP   $remote_addr;
+        }
+
+}
index 4321e00a1d7d8043d31a0cd1003b796fb042df21..ac01b2b0a63ce8a48fc29355eeda3c23a46685a8 100644 (file)
@@ -4,8 +4,8 @@ from paddles import models
 from paddles.hooks.cors import CorsHook
 
 server = {
-    'port': '{{ paddles_port }}',
-    'host': '{{ listen_ip }}'
+    'port': '8080',
+    'host': '127.0.0.1'
 }
 
 address = '{{ paddles_address }}'
index c5a7fd4d45c4aa4cb98a61fb3385d0c30954119e..191524cc7a8be842680619fc1e4bdd9435fa8d2d 100644 (file)
@@ -11,6 +11,11 @@ paddles_extra_packages:
   - postgresql-contrib
   - postgresql-server-dev-all
   - supervisor
+  # We use nginx to reverse-proxy
+  - nginx
+
+# We need this so we can disable apache2 to get out of the way of nginx
+apache_service: 'apache2'
 
 supervisor_conf_d: /etc/supervisor/conf.d
 supervisor_conf_suffix: conf