Sha256: 26ce05d77f5888ba9575608f60a62bfad58e94fb943d3e350192388fe567d365

Contents?: true

Size: 1.38 KB

Versions: 38

Compression:

Stored size: 1.38 KB

Contents

  # partially based on https://onehub.com/blog/2009/03/06/rails-maintenance-pages-done-right/
  recursive_error_pages on;

  set $maintenance off;
  set $maintenance_bypass off;

  # https://blog.ed.gs/2013/01/25/nginx-multiple-if-statements/
  set $maintenance_test maint_off;
  set $bypass_test bypass_on;
  set $ip_test ip_unmatched;
  set $all_tests no;

  if (-f $document_root/maintenance/maintenance.on) {
    set $maintenance_test maint_on;
    set $maintenance on;
  }

  if (-f $document_root/maintenance/maintenance_bypass.off) {
    set $bypass_test bypass_off;
  }

  if ($remote_addr ~ <%= Pvcglue.cloud.dev_ip_addresses.join('|').gsub('.', '\.') %>) {
    set $ip_test ip_match;
  }

  set $all_tests "${maintenance_test}__${bypass_test}__${ip_test}";


  if ($all_tests = maint_on__bypass_on__ip_match) {
    set $maintenance off;
    set $maintenance_bypass on; # only add header when maintenance is on and the remote address is a dev ip address and bypass is on
  }

  if ($uri ~ ^/maintenance/.*) {
    set $maintenance off;
  }

  if ($maintenance = on) {
    return 503; # 503 - Service unavailable
  }

  location /maintenance {
  }

  #error_page 404 /404.html;
  #error_page 500 502 504 /500.html;
  error_page 503 @503;

  location @503 {

    error_page 405 = /maintenance/maintenance.html;

    # Serve static assets if found.
    rewrite ^(.*)$ /maintenance/maintenance.html break;
  }

Version data entries

38 entries across 38 versions & 1 rubygems

Version Path
pvcglue-0.9.6 lib/pvcglue/templates/maintenance_mode.erb
pvcglue-0.9.5 lib/pvcglue/templates/maintenance_mode.erb
pvcglue-0.9.4 lib/pvcglue/templates/maintenance_mode.erb
pvcglue-0.9.3 lib/pvcglue/templates/maintenance_mode.erb
pvcglue-0.9.2 lib/pvcglue/templates/maintenance_mode.erb
pvcglue-0.9.1 lib/pvcglue/templates/maintenance_mode.erb
pvcglue-0.9.0 lib/pvcglue/templates/maintenance_mode.erb
pvcglue-0.1.39 lib/pvcglue/templates/maintenance_mode.erb
pvcglue-0.1.38 lib/pvcglue/templates/maintenance_mode.erb
pvcglue-0.1.37 lib/pvcglue/templates/maintenance_mode.erb
pvcglue-0.1.36 lib/pvcglue/templates/maintenance_mode.erb
pvcglue-0.1.35 lib/pvcglue/templates/maintenance_mode.erb
pvcglue-0.1.34 lib/pvcglue/templates/maintenance_mode.erb
pvcglue-0.1.33 lib/pvcglue/templates/maintenance_mode.erb
pvcglue-0.1.32 lib/pvcglue/templates/maintenance_mode.erb
pvcglue-0.1.31 lib/pvcglue/templates/maintenance_mode.erb
pvcglue-0.1.30 lib/pvcglue/templates/maintenance_mode.erb
pvcglue-0.1.29 lib/pvcglue/templates/maintenance_mode.erb
pvcglue-0.1.28 lib/pvcglue/templates/maintenance_mode.erb
pvcglue-0.1.27 lib/pvcglue/templates/maintenance_mode.erb