upstream v-configuration {
   least_conn;
   server <Your Master Server IP>:23000;
}

upstream v-apiserver {
   least_conn;
   server <Your Master Server IP>:8090;
}

upstream v-surveillance {
   least_conn;
   server <Your Master Server IP>:8041;
}

upstream userportal {
   least_conn;
   server <Your Master Server IP>:3010;
}

upstream v-notificationserver {
   least_conn;
   server <Your Streaming Server IP>:8079;
}

server {
   listen 80 default_server;
   listen [::]:80 default_server ipv6only=on;

   # return 301 https://$host$request_uri;

   location /v-apiserver/ {
      proxy_pass http://v-apiserver;
   }

   location /vsaas {
      proxy_pass http://v-surveillance;
   }

   location / {
      proxy_pass http://userportal/;
   }

   location /v-notificationserver {
      proxy_pass http://v-notificationserver;
   }

   location ~ /(.+)/v2/stream/(.*)$ {
      proxy_pass http://$1/v2/stream/$2;
   }

   location ~ /(.+)/live/(.*)$ {
      proxy_pass http://$1/live/$2;
   }

}


server {
   # SSL configuration

   listen 443 ssl;
   listen [::]:443 ssl;
  
   http2 on;

   ssl_certificate		/etc/nginx/ssl/f6b1779b975a8208.crt;
   ssl_certificate_key	/etc/nginx/ssl/soterixcloud.key;
   
   ssl_session_timeout 1d;
   ssl_session_cache shared:SharedNixCraftSSL:10m; 
   ssl_session_tickets off;

   # TLS 1.3 only
   ssl_protocols TLSv1.2 TLSv1.3;
   ssl_prefer_server_ciphers off;

   # OCSP stapling
   ssl_stapling off;
   ssl_stapling_verify off;

   # verify chain of trust of OCSP response using Root CA and Intermediate certs
   # ssl_trusted_certificate /etc/nginx/ssl/fullchain.pem;

   client_max_body_size	200M;


   location /v-apiserver/ {
      proxy_pass http://v-apiserver;

      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-Host $host;    
      proxy_set_header X-Forwarded-Server $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-Proto $scheme;

      # enables WS support
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";

      proxy_send_timeout          600;
      proxy_read_timeout          600;
      send_timeout                600;
   }

   location /vsaas {
      proxy_pass http://v-surveillance;

      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-Host $host;    
      proxy_set_header X-Forwarded-Server $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-Proto $scheme;

      # enables WS support
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";

      proxy_send_timeout          600;
      proxy_read_timeout          600;
      send_timeout                600;
   }

   location / {
      proxy_pass http://userportal/;

      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-Host $host;    
      proxy_set_header X-Forwarded-Server $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-Proto $scheme;

      # enables WS support
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";

      proxy_send_timeout          600;
      proxy_read_timeout          600;
      send_timeout                600;
}
   
   location /v-configuration/ {
         proxy_pass http://v-configuration/;

         proxy_set_header Host $http_host;
         proxy_set_header X-Forwarded-Host $host;    
         proxy_set_header X-Forwarded-Server $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-Proto $scheme;
 
         proxy_send_timeout          600;
         proxy_read_timeout          600;
         send_timeout                600;
   }
   
   location /v-notificationserver {
      proxy_pass http://v-notificationserver;

      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-Host $host;    
      proxy_set_header X-Forwarded-Server $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-Proto $scheme;

      # enables WS support
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";

      proxy_send_timeout          600;
      proxy_read_timeout          600;
      send_timeout                600;
   }

   location ~ /(.+)/v2/stream/(.*)$ {
      proxy_pass http://$1/v2/stream/$2;

      proxy_set_header Host $http_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-Proto $scheme;
   }

   location ~ /(.+)/live/(.*)$ {
      proxy_pass http://$1/live/$2;
   }
}

server {
   listen 3010 default_server;
   listen [::]:3010 default_server ipv6only=on;
   

   
   location / {
      proxy_pass http://v-configuration/;
   }
 
}

