diff --git a/nginx.tmpl b/nginx.tmpl index d18b2ab..a78e545 100644 --- a/nginx.tmpl +++ b/nginx.tmpl @@ -589,18 +589,31 @@ proxy_set_header Proxy ""; {{- range $path, $vpath := $vhost }} {{- if (empty $vpath) }} - {{- $vpath = dict "dest" "" "port" "default" }} + {{- $vpath = dict + "dest" "" + "port" "default" + "proto" "http" + }} {{- end }} + {{- $dest := $vpath.dest | default "" }} {{- $port := $vpath.port | default "default" | toString }} + {{- $proto := $vpath.proto | default "http" }} + {{- $path_data := get $paths $path | default (dict) }} {{- $path_ports := $path_data.ports | default (dict) }} {{- $path_port_containers := get $path_ports $port | default (list) | concat $containers }} {{- $_ := set $path_ports $port $path_port_containers }} {{- $_ := set $path_data "ports" $path_ports }} + {{- if (not (hasKey $path_data "dest")) }} {{- $_ := set $path_data "dest" $dest }} {{- end }} + + {{- if (not (hasKey $path_data "proto")) }} + {{- $_ := set $path_data "proto" $proto }} + {{- end }} + {{- $_ := set $paths $path $path_data }} {{- end }} {{- $_ := set $vhost_data "paths" $paths }} @@ -635,6 +648,8 @@ proxy_set_header Proxy ""; {{- range $path, $containers := $tmp_paths }} {{- $dest := groupByKeys $containers "Env.VIRTUAL_DEST" | first | default "" }} + {{- $proto := groupByKeys $containers "Env.VIRTUAL_PROTO" | first | default "http" | trim }} + {{- $path_data := get $paths $path | default (dict) }} {{- $path_ports := $path_data.ports | default (dict) }} {{- range $port, $containers := groupByWithDefault $containers "Env.VIRTUAL_PORT" "default" }} @@ -642,9 +657,15 @@ proxy_set_header Proxy ""; {{- $_ := set $path_ports $port $path_port_containers }} {{- end }} {{- $_ := set $path_data "ports" $path_ports }} + {{- if (not (hasKey $path_data "dest")) }} {{- $_ := set $path_data "dest" $dest }} {{- end }} + + {{- if (not (hasKey $path_data "proto")) }} + {{- $_ := set $path_data "proto" $proto }} + {{- end }} + {{- $_ := set $paths $path $path_data }} {{- end }} {{- $_ := set $vhost_data "paths" $paths }} @@ -664,8 +685,6 @@ proxy_set_header Proxy ""; {{ $vpath_containers = concat $vpath_containers $vport_containers }} {{- end }} - {{- /* Get the VIRTUAL_PROTO defined by containers w/ the same vhost-vpath, falling back to "http". */}} - {{- $proto := groupByKeys $vpath_containers "Env.VIRTUAL_PROTO" | first | default "http" | trim }} {{- /* Get the NETWORK_ACCESS defined by containers w/ the same vhost, falling back to "external". */}} {{- $network_tag := groupByKeys $vpath_containers "Env.NETWORK_ACCESS" | first | default "external" }} @@ -678,7 +697,6 @@ proxy_set_header Proxy ""; {{- $upstream = printf "%s-%s" $upstream $sum }} {{- end }} - {{- $_ := set $vpath_data "proto" $proto }} {{- $_ := set $vpath_data "network_tag" $network_tag }} {{- $_ := set $vpath_data "upstream" $upstream }} {{- $_ := set $vpath_data "loadbalance" $loadbalance }}