将django网站停下来进行维护?

时间:2015-12-08 05:50:09

标签: django nginx server gunicorn

我正在用nginx / gunicorn运行django。我对nginx和gunicorn的工作原理并不十分熟悉,但我想我想把我的django网站放下来进行维护。

我假设我想通过进入nginx / gunicorn设置并重定向某些东西来重定向到一些简单的维护页面,但我可能是错的。

这样做的最简单(最简单)方法是什么?

编辑添加nginx配置代理语句:

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://app_server;

编辑2:添加启用了nginx站点的文件

upstream app_server {
    server 127.0.0.1:9000 fail_timeout=0;
}

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /usr/share/nginx/html;
    index index.html index.htm;

    client_max_body_size 4G;
    server_name _;

    keepalive_timeout 5;

    # Your Django project's media files - amend as required
    location /media  {
        alias /home/django/mysite/media;
    }

    # your Django project's static files - amend as required
    location /static {
        alias /home/django/mysite/static_dump;
    }

    location / {
        #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        #proxy_set_header Host $http_host;
        #proxy_redirect off;
        #proxy_pass http://app_server;

        if (-f /usr/share/nginx/html/index.html) {
                return 503;
        }
    }
   error_page 503 @maintenance;
   location @maintenance {
        rewrite ^(.*)$ /503.html break;
   }
}

1 个答案:

答案 0 :(得分:1)

其中一种方法是在服务器中的某处添加维护页面,然后在您的nginx文件(在启用站点的文件夹中)将请求重定向到该维护页面。 您的nginx页面应包含:

server_name myhost.example.com;

root /path/to/html/file/directory;
index index.html;

只有以上3行才足够