commit ea4cd025a6d229d613d0390adecd6bc3e41cdcee
parent 96d87c3636534e08eff7f2dbe48f3d736134542a
Author: Florian Dold <florian.dold@gmail.com>
Date: Fri, 10 Mar 2017 13:54:27 +0100
full header-based switching
Diffstat:
1 file changed, 180 insertions(+), 16 deletions(-)
diff --git a/etc/nginx/sites-enabled/test.site b/etc/nginx/sites-enabled/test.site
@@ -9,11 +9,10 @@ server {
}
-
server {
+ server_name test.taler.net www.test.taler.net;
listen 443 ssl;
listen [::]:443 ssl;
- server_name test.taler.net www.test.taler.net;
root /dev/null;
rewrite /javascript /javascript.html break;
include conf.d/test.redirects;
@@ -34,12 +33,8 @@ server {
error_page 418 = @blue;
error_page 419 = @green;
recursive_error_pages on;
- if ($http_x_taler_deployment_color ~ "blue") {
- return 418;
- }
- if ($http_x_taler_deployment_color ~ "green") {
- return 419;
- }
+ if ($http_x_taler_deployment_color ~ "blue") { return 418; }
+ if ($http_x_taler_deployment_color ~ "green") { return 419; }
uwsgi_pass unix:/home/test/sockets/landing.uwsgi;
include /etc/nginx/uwsgi_params;
}
@@ -48,19 +43,55 @@ server {
server {
+ server_name exchange.test.taler.net;
listen 443 ssl;
listen [::]:443 ssl;
- server_name exchange.test.taler.net;
root /dev/null;
include conf.d/talerssl;
+ location @blue-admin {
+ add_header X-Taler-Deployment-Color blue;
+ proxy_pass http://unix:/home/test-blue/sockets/exchange-admin.http;
+ proxy_redirect off;
+ proxy_set_header Host $host;
+ }
+ location @green-admin {
+ add_header X-Taler-Deployment-Color green;
+ proxy_pass http://unix:/home/test-green/sockets/exchange-admin.http;
+ proxy_redirect off;
+ proxy_set_header Host $host;
+ }
+
+ location @blue {
+ add_header X-Taler-Deployment-Color blue;
+ proxy_pass http://unix:/home/test-blue/sockets/exchange.http:/;
+ proxy_redirect off;
+ proxy_set_header Host $host;
+ }
+
+ location @green {
+ add_header X-Taler-Deployment-Color green;
+ proxy_pass http://unix:/home/test-green/sockets/exchange.http:/;
+ proxy_redirect off;
+ proxy_set_header Host $host;
+ }
location /admin {
+ error_page 418 = @blue-admin;
+ error_page 419 = @green-admin;
+ recursive_error_pages on;
+ if ($http_x_taler_deployment_color ~ "blue") { return 418; }
+ if ($http_x_taler_deployment_color ~ "green") { return 419; }
proxy_pass http://unix:/home/test/sockets/exchange-admin.http;
proxy_redirect off;
proxy_set_header Host $host;
}
location / {
+ error_page 418 = @blue;
+ error_page 419 = @green;
+ recursive_error_pages on;
+ if ($http_x_taler_deployment_color ~ "blue") { return 418; }
+ if ($http_x_taler_deployment_color ~ "green") { return 419; }
proxy_pass http://unix:/home/test/sockets/exchange.http:/;
proxy_redirect off;
proxy_set_header Host $host;
@@ -69,20 +100,59 @@ server {
server {
+ server_name shop.test.taler.net;
listen 443 ssl;
listen [::]:443 ssl;
- server_name shop.test.taler.net;
root /dev/null;
include conf.d/test.redirects;
include conf.d/talerssl;
+ location @blue {
+ add_header X-Taler-Deployment-Color blue;
+ uwsgi_pass unix:/home/test-green/sockets/shop.uwsgi;
+ include /etc/nginx/uwsgi_params;
+ }
+ location @green {
+ add_header X-Taler-Deployment-Color green;
+ uwsgi_pass unix:/home/test-blue/sockets/shop.uwsgi;
+ include /etc/nginx/uwsgi_params;
+ }
+
+ location @blue-backend {
+ add_header X-Taler-Deployment-Color blue;
+ rewrite /backend/(.*) /$1 break;
+ proxy_pass http://unix:/home/test-blue/sockets/merchant.http:/;
+ proxy_redirect off;
+ proxy_set_header Host $host;
+ }
+ location @green-backend {
+ add_header X-Taler-Deployment-Color green;
+ rewrite /backend/(.*) /$1 break;
+ proxy_pass http://unix:/home/test-green/sockets/merchant.http:/;
+ proxy_redirect off;
+ proxy_set_header Host $host;
+ }
+
location / {
- ssi on;
+ # Redirection technique explainted at
+ # https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/
+ error_page 418 = @blue;
+ error_page 419 = @green;
+ recursive_error_pages on;
+ if ($http_x_taler_deployment_color ~ "blue") { return 418; }
+ if ($http_x_taler_deployment_color ~ "green") { return 419; }
uwsgi_pass unix:/home/test/sockets/shop.uwsgi;
include /etc/nginx/uwsgi_params;
}
location /backend {
+ # Redirection technique explainted at
+ # https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/
+ error_page 418 = @blue-backend;
+ error_page 419 = @green-backend;
+ recursive_error_pages on;
+ if ($http_x_taler_deployment_color ~ "blue") { return 418; }
+ if ($http_x_taler_deployment_color ~ "green") { return 419; }
rewrite /backend/(.*) /$1 break;
proxy_pass http://unix:/home/test/sockets/merchant.http:/;
proxy_redirect off;
@@ -93,14 +163,34 @@ server {
server {
+ server_name backend.test.taler.net;
listen 443 ssl;
listen 80;
listen [::]:443 ssl;
listen [::]:80;
- server_name backend.test.taler.net;
include conf.d/talerssl;
+ location @blue {
+ add_header X-Taler-Deployment-Color blue;
+ proxy_pass http://unix:/home/test-blue/sockets/merchant.http:/;
+ proxy_redirect off;
+ proxy_set_header Host $host;
+ }
+ location @green {
+ add_header X-Taler-Deployment-Color green;
+ proxy_pass http://unix:/home/test-green/sockets/merchant.http:/;
+ proxy_redirect off;
+ proxy_set_header Host $host;
+ }
+
location / {
+ # Redirection technique explainted at
+ # https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/
+ error_page 418 = @blue;
+ error_page 419 = @green;
+ recursive_error_pages on;
+ if ($http_x_taler_deployment_color ~ "blue") { return 418; }
+ if ($http_x_taler_deployment_color ~ "green") { return 419; }
proxy_pass http://unix:/home/test/sockets/merchant.http:/;
proxy_redirect off;
proxy_set_header Host $host;
@@ -109,19 +199,58 @@ server {
server {
+ server_name donations.test.taler.net;
listen 443 ssl;
listen [::]:443 ssl;
- server_name donations.test.taler.net;
include conf.d/test.redirects;
include conf.d/talerssl;
+ location @blue {
+ add_header X-Taler-Deployment-Color blue;
+ uwsgi_pass unix:/home/test-green/sockets/donations.uwsgi;
+ include /etc/nginx/uwsgi_params;
+ }
+ location @green {
+ add_header X-Taler-Deployment-Color green;
+ uwsgi_pass unix:/home/test/sockets/donations.uwsgi;
+ include /etc/nginx/uwsgi_params;
+ }
+
+ location @blue-backend {
+ add_header X-Taler-Deployment-Color blue;
+ rewrite /backend/(.*) /$1 break;
+ proxy_pass http://unix:/home/test-blue/sockets/merchant.http:/;
+ proxy_redirect off;
+ proxy_set_header Host $host;
+ }
+ location @green-backend {
+ add_header X-Taler-Deployment-Color green;
+ rewrite /backend/(.*) /$1 break;
+ proxy_pass http://unix:/home/test-green/sockets/merchant.http:/;
+ proxy_redirect off;
+ proxy_set_header Host $host;
+ }
+
location / {
- ssi on;
+ # Redirection technique explainted at
+ # https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/
+ error_page 418 = @blue;
+ error_page 419 = @green;
+ recursive_error_pages on;
+ if ($http_x_taler_deployment_color ~ "blue") { return 418; }
+ if ($http_x_taler_deployment_color ~ "green") { return 419; }
uwsgi_pass unix:/home/test/sockets/donations.uwsgi;
include /etc/nginx/uwsgi_params;
}
location /backend {
+ # Redirection technique explainted at
+ # https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/
+ error_page 418 = @blue-backend;
+ error_page 419 = @green-backend;
+ recursive_error_pages on;
+ if ($http_x_taler_deployment_color ~ "blue") { return 418; }
+ if ($http_x_taler_deployment_color ~ "green") { return 419; }
rewrite /backend/(.*) /$1 break;
proxy_pass http://unix:/home/test/sockets/merchant.http:/;
proxy_redirect off;
@@ -132,19 +261,54 @@ server {
server {
+ server_name bank.test.taler.net;
listen 443 ssl;
listen [::]:443 ssl;
- server_name bank.test.taler.net;
include conf.d/test.redirects;
include conf.d/talerssl;
+ location @blue-add-incoming {
+ add_header X-Taler-Deployment-Color blue;
+ uwsgi_pass unix:/home/test-blue/sockets/bank-admin.uwsgi;
+ include /etc/nginx/uwsgi_params;
+ }
+ location @green-add-incoming {
+ add_header X-Taler-Deployment-Color green;
+ uwsgi_pass unix:/home/test-green/sockets/bank-admin.uwsgi;
+ include /etc/nginx/uwsgi_params;
+ }
+
+ location @blue {
+ add_header X-Taler-Deployment-Color blue;
+ uwsgi_pass unix:/home/test-blue/sockets/bank.uwsgi;
+ include /etc/nginx/uwsgi_params;
+ }
+ location @green {
+ add_header X-Taler-Deployment-Color green;
+ uwsgi_pass unix:/home/test-green/sockets/bank.uwsgi;
+ include /etc/nginx/uwsgi_params;
+ }
+
location /admin/add/incoming {
+ # Redirection technique explainted at
+ # https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/
+ error_page 418 = @blue-add-incoming;
+ error_page 419 = @green-add-incoming;
+ recursive_error_pages on;
+ if ($http_x_taler_deployment_color ~ "blue") { return 418; }
+ if ($http_x_taler_deployment_color ~ "green") { return 419; }
uwsgi_pass unix:/home/test/sockets/bank-admin.uwsgi;
include /etc/nginx/uwsgi_params;
}
location / {
- ssi on;
+ # Redirection technique explainted at
+ # https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/
+ error_page 418 = @blue;
+ error_page 419 = @green;
+ recursive_error_pages on;
+ if ($http_x_taler_deployment_color ~ "blue") { return 418; }
+ if ($http_x_taler_deployment_color ~ "green") { return 419; }
uwsgi_pass unix:/home/test/sockets/bank.uwsgi;
include /etc/nginx/uwsgi_params;
}