You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by mi...@apache.org on 2024/08/23 08:27:28 UTC

(incubator-devlake) branch main updated: add cloud api proxy (#7948)

This is an automated email from the ASF dual-hosted git repository.

mintsweet pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git


The following commit(s) were added to refs/heads/main by this push:
     new 566f61bce add cloud api proxy (#7948)
566f61bce is described below

commit 566f61bcebd262c1ddd8aef304da32f268c64da8
Author: ZhangNing10 <13...@users.noreply.github.com>
AuthorDate: Fri Aug 23 16:27:24 2024 +0800

    add cloud api proxy (#7948)
---
 config-ui/nginx.conf | 26 ++++++++++++++++++++++++++
 config-ui/nginx.sh   |  2 +-
 2 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/config-ui/nginx.conf b/config-ui/nginx.conf
index 959d8bff8..7d810010a 100644
--- a/config-ui/nginx.conf
+++ b/config-ui/nginx.conf
@@ -22,9 +22,13 @@ ${SERVER_CONF}
     resolver ${DNS} valid=${DNS_VALID};
     resolver_timeout 3s;
     set $target "${DEVLAKE_ENDPOINT}";
+
+    #https://serverfault.com/questions/459369/disabling-url-decoding-in-nginx-proxy
     rewrite ^ $request_uri;
     rewrite ^/api/(.*) $1 break;
+    # If the second rewrite rule doesn't match, return 400
     return 400;
+
     proxy_send_timeout 60s;
     proxy_read_timeout 60s;
     proxy_pass ${DEVLAKE_ENDPOINT_PROTO}://$target/$uri;
@@ -45,6 +49,28 @@ ${SERVER_CONF}
     proxy_set_header   "Connection" "";
   }
 
+  location /cloud-api/ {
+    resolver ${DNS} valid=${DNS_VALID};
+    resolver_timeout 3s;
+
+    set $target "${DEVLAKE_CLOUD_API}";
+    if ($target = "") {
+      return 503;
+    }
+
+    #https://serverfault.com/questions/459369/disabling-url-decoding-in-nginx-proxy
+    rewrite ^ $request_uri;
+    rewrite ^/cloud-api/(.*) $1 break;
+    # If the second rewrite rule doesn't match, return 400
+    return 400;
+
+    proxy_send_timeout 60s;
+    proxy_read_timeout 60s;
+    proxy_pass $target/$uri;
+    proxy_http_version 1.1;
+    proxy_set_header   "Connection" "";
+  }
+
   location /grafana/ {
     auth_basic off;
     set $external "${USE_EXTERNAL_GRAFANA}";
diff --git a/config-ui/nginx.sh b/config-ui/nginx.sh
index 3e216b451..e35587a64 100755
--- a/config-ui/nginx.sh
+++ b/config-ui/nginx.sh
@@ -45,7 +45,7 @@ export DNS=$(awk 'BEGIN{ORS=" "} $1=="nameserver" {if ($2 ~ ":") {print "["$2"]"
 export DNS_VALID=${DNS_VALID:-300s}
 export DEVLAKE_ENDPOINT_PROTO=${DEVLAKE_ENDPOINT_PROTO:-http}
 export GRAFANA_ENDPOINT_PROTO=${GRAFANA_ENDPOINT_PROTO:-http}
-envsubst '${LISTENER} ${DEVLAKE_ENDPOINT} ${DEVLAKE_ENDPOINT_PROTO} ${GRAFANA_ENDPOINT} ${GRAFANA_ENDPOINT_PROTO} ${USE_EXTERNAL_GRAFANA} ${SERVER_CONF} ${DNS} ${DNS_VALID}' \
+envsubst '${LISTENER} ${DEVLAKE_ENDPOINT} ${DEVLAKE_ENDPOINT_PROTO} ${DEVLAKE_CLOUD_API} ${GRAFANA_ENDPOINT} ${GRAFANA_ENDPOINT_PROTO} ${USE_EXTERNAL_GRAFANA} ${SERVER_CONF} ${DNS} ${DNS_VALID}' \
     < /etc/nginx/conf.d/default.conf.tpl \
     > /etc/nginx/conf.d/default.conf
 nginx -g 'daemon off;'