Sha256: 93939b7d83b6bc3f6e5f64b5f38ad6e7ba367085ead6fbf59c1ac3421d7ac43c

Contents?: true

Size: 1.09 KB

Versions: 3

Compression:

Stored size: 1.09 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 $bypass_test no;

  if (-f $document_root/maintenance/maintenance.on) {
    set $maintenance on;
    set $bypass_test yes;
  }

  if ($remote_addr ~ <%= Pvcglue.cloud.dev_ip_addresses.join('|').gsub('.', '\.') %>) {
    set $maintenance off;
    set $bypass_test "${bypass_test}yes";
  }

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

  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

3 entries across 3 versions & 1 rubygems

Version Path
pvcglue-0.1.7 lib/pvcglue/templates/maintenance_mode.erb
pvcglue-0.1.6 lib/pvcglue/templates/maintenance_mode.erb
pvcglue-0.1.5 lib/pvcglue/templates/maintenance_mode.erb