具有nginx的维护页面,用于一个domain_name等

时间:2010-11-02 10:08:12

标签: ruby-on-rails nginx passenger

我有一个铁路应用程序,提供多个domain_name,由nginx&部署。乘客。我需要将一个域置于维护模式,而另一个域仍然照常工作。这是我的配置:

server {
    listen 80;
    server_name domain1.com domain2.com domain3.com domain4.com;
    error_page 503 http://$host/maintenance.html;

    location /maintenance.html {
      # Allow requests
    }

    location / {
        root /var/www/myapp/public;   # <--- be sure to point to 'public'!
        error_page 503 http://$host/maintenance.html;
        passenger_enabled on;
        rails_env development;
        passenger_use_global_queue on;

        if (-f /var/www/myapp/public/maintenance.html) {
            return 503;
        }
    }
}

以上配置会导致所有域都处于维护状态。但是,我想把domain1.com置于维护模式下。我怎么做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以为服务器“domain1.com”添加另一个服务器条目,该服务器条目仅为此域提供请求。像:

server {
listen 80;
server_name domain1.com 
error_page 503 http://$host/maintenance.html;
root /your/root/directory/
if (-f $document_root/maintenance.html){
    rewrite  ^(.*)$  /maintenance.html last;
     break;
      }

location /maintenance.html {
  # Allow requests
}}

您需要确保关注

  1. 应从以前的服务器中删除“domain1.com” 条目
  2. maintenance.html页面应该是 出现在/ your / root / directory /