From c70dbb8916f4d26de408524493147e1b92578780 Mon Sep 17 00:00:00 2001 From: "nicolas.dorier" Date: Sat, 16 Mar 2019 15:13:37 +0900 Subject: [PATCH] Refactor the redirects of nginx inside a template --- Production/nginx.tmpl | 133 +++++++++++++++++++++--------------------- 1 file changed, 67 insertions(+), 66 deletions(-) diff --git a/Production/nginx.tmpl b/Production/nginx.tmpl index 9093e8c..4c4aaf6 100644 --- a/Production/nginx.tmpl +++ b/Production/nginx.tmpl @@ -21,6 +21,72 @@ {{ end }} +{{ define "redirects" }} + {{ if eq $.HostName "btcpay" }} + {{ range $container := $.Containers }} + {{ $serviceName := (index $container.Labels "com.docker.compose.service") }} + {{ if (eq $serviceName "lnd_bitcoin") }} + location /lnrpc.Lightning { + grpc_pass grpcs://lnd_bitcoin:10009; + } + location /lnd-rest/btc/ { + rewrite ^/lnd-rest/btc/(.*) /$1 break; + proxy_pass http://lnd_bitcoin:8080/; + } + {{ end }} + {{ if (eq $serviceName "lnd_bitcoin_rtl") }} + location /rtl/ { + proxy_pass http://lnd_bitcoin_rtl:3000/rtl/; + } + {{ end }} + {{ if (eq $serviceName "btcqbo") }} + location /btcqbo/ { + proxy_pass http://btcqbo:8001; + 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; + } + {{ end }} + {{ if (eq $serviceName "clightning_bitcoin_spark") }} + location /spark/btc/ { + proxy_pass http://clightning_bitcoin_spark:9737/; + } + {{ end }} + {{ if (eq $serviceName "clightning_bitcoin_charge") }} + location /lightning-charge/btc/ { + proxy_pass http://clightning_bitcoin_charge:9112/; + } + {{ end }} + {{ if (eq $serviceName "clightning_groestlcoin_spark") }} + location /spark/grs/ { + proxy_pass http://clightning_groestlcoin_spark:9739/; + } + {{ end }} + {{ if (eq $serviceName "clightning_groestlcoin_charge") }} + location /lightning-charge/grs/ { + proxy_pass http://clightning_groestlcoin_charge:9112/; + } + {{ end }} + {{ end }} + {{ end }} + + {{ if eq $.HostName "librepatron" }} + {{ range $container := $.Containers }} + {{ $serviceName := (index $container.Labels "com.docker.compose.service") }} + {{ if (eq $serviceName "isso") }} + location /isso { + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Script-Name /isso; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_pass http://isso:8080; + } + {{ end }} + {{ end }} + {{ end }} +{{ end }} + # If we receive X-Forwarded-Proto, pass it through; otherwise, pass along the # scheme used to connect to this server map $http_x_forwarded_proto $proxy_x_forwarded_proto { @@ -297,73 +363,8 @@ server { {{ else if (exists "/etc/nginx/vhost.d/default_location") }} include /etc/nginx/vhost.d/default_location; {{ end }} - } - - {{ if eq $host_name "btcpay" }} - {{ range $container := $ }} - {{ $serviceName := (index $container.Labels "com.docker.compose.service") }} - {{ if (eq $serviceName "lnd_bitcoin") }} - location /lnrpc.Lightning { - grpc_pass grpcs://lnd_bitcoin:10009; - } - location /lnd-rest/btc/ { - rewrite ^/lnd-rest/btc/(.*) /$1 break; - proxy_pass http://lnd_bitcoin:8080/; - } - {{ end }} - {{ if (eq $serviceName "lnd_bitcoin_rtl") }} - location /rtl/ { - proxy_pass http://lnd_bitcoin_rtl:3000/rtl/; - } - {{ end }} - {{ if (eq $serviceName "btcqbo") }} - location /btcqbo/ { - proxy_pass http://btcqbo:8001; - 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; } - {{ end }} - {{ if (eq $serviceName "clightning_bitcoin_spark") }} - location /spark/btc/ { - proxy_pass http://clightning_bitcoin_spark:9737/; - } - {{ end }} - {{ if (eq $serviceName "clightning_bitcoin_charge") }} - location /lightning-charge/btc/ { - proxy_pass http://clightning_bitcoin_charge:9112/; - } - {{ end }} - {{ if (eq $serviceName "clightning_groestlcoin_spark") }} - location /spark/grs/ { - proxy_pass http://clightning_groestlcoin_spark:9739/; - } - {{ end }} - {{ if (eq $serviceName "clightning_groestlcoin_charge") }} - location /lightning-charge/grs/ { - proxy_pass http://clightning_groestlcoin_charge:9112/; - } - {{ end }} - - - {{ end }} - {{ end }} - - {{ if eq $host_name "librepatron" }} - {{ range $container := $ }} - {{ $serviceName := (index $container.Labels "com.docker.compose.service") }} - {{ if (eq $serviceName "isso") }} - location /isso { - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Script-Name /isso; - proxy_set_header Host $host; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_pass http://isso:8080; - } - {{ end }} - {{ end }} - {{ end }} + {{ template "redirects" (dict "HostName" $host_name "Containers" $) }} } {{ end }}