From 7723a033de31be0fd413948e1ab43365b6285e50 Mon Sep 17 00:00:00 2001
From: Nikolay Stanchev <ns17@it-innovation.soton.ac.uk>
Date: Tue, 4 Sep 2018 16:33:25 +0100
Subject: [PATCH] Adds nginx reverse proxy in clmc-service container

---
 scripts/clmc-service/install-clmc-service.sh |  7 ++-
 scripts/clmc-service/nginx.conf              | 59 ++++++++++++++++++++
 src/test/clmctest/rspec.json                 |  5 +-
 3 files changed, 66 insertions(+), 5 deletions(-)
 create mode 100644 scripts/clmc-service/nginx.conf

diff --git a/scripts/clmc-service/install-clmc-service.sh b/scripts/clmc-service/install-clmc-service.sh
index 36877c4..c6ba51b 100755
--- a/scripts/clmc-service/install-clmc-service.sh
+++ b/scripts/clmc-service/install-clmc-service.sh
@@ -96,7 +96,7 @@ if [ $? -ne 0 ] ; then
 		exit 1
 fi
 
-# Install minioclmc as systemctl service
+# Install clmc as systemctl service
 # -----------------------------------------------------------------------
 mkdir -p /opt/flame/clmc
 start_script_file="/opt/flame/clmc/start.sh"
@@ -130,3 +130,8 @@ do
   echo "Waiting for clmc service port 9080 to be ready on localhost..."
   sleep 5
 done
+
+# install and start nginx
+apt-get install nginx -y
+cp ${REPO_ROOT}/scripts/clmc-service/nginx.conf /etc/nginx/nginx.conf
+systemctl restart nginx  # nginx is already started on installation, to read the new conf it needs to be restarted
\ No newline at end of file
diff --git a/scripts/clmc-service/nginx.conf b/scripts/clmc-service/nginx.conf
new file mode 100644
index 0000000..35dd1ff
--- /dev/null
+++ b/scripts/clmc-service/nginx.conf
@@ -0,0 +1,59 @@
+user www-data;
+worker_processes auto;
+pid /run/nginx.pid;
+
+events {
+    worker_connections 1024;
+}
+
+http {
+
+    sendfile on;
+    tcp_nopush on;
+    tcp_nodelay on;
+    keepalive_timeout 65;
+    types_hash_max_size 2048;
+
+    include /etc/nginx/mime.types;
+    default_type application/octet-stream;
+
+    access_log /var/log/nginx/access.log;
+    error_log /var/log/nginx/error.log;
+
+    server {
+        listen 80;
+
+        location /kapacitor {
+            proxy_pass http://127.0.0.1:9092; # N.B. No URI in the URL, passes the whole location preserving the prefix
+            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-Host $server_name;
+        }
+        location /clmc-service/ {
+            proxy_pass http://127.0.0.1:9080/;
+            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-Host $server_name;
+        }
+        location /influxdb/ {
+            proxy_pass http://127.0.0.1:8086/;
+            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-Host $server_name;
+        }
+        location /neo4j/ {
+            proxy_pass http://127.0.0.1:7474/;
+            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-Host $server_name;
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/test/clmctest/rspec.json b/src/test/clmctest/rspec.json
index 524d25b..7a6d7c5 100644
--- a/src/test/clmctest/rspec.json
+++ b/src/test/clmctest/rspec.json
@@ -2,10 +2,7 @@
     "name": "clmc-service",
     "ip_address": "172.40.231.51",
     "forward_ports": [
-        { "guest": 8086, "host": 8086 },
-        { "guest": 8888, "host": 8888 },
-        { "guest": 9092, "host": 9092 },
-        { "guest": 9080, "host": 9080 }    
+        { "guest": 80, "host": 80 }
     ]
 },
 {
-- 
GitLab