关闭 Django 站点进行维护?
taking a django site down for maintenance?
我是 运行 django 和 nginx/gunicorn。我不太熟悉 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;
}
}
其中一种方法是在服务器的某处添加维护页面,然后在您的 nginx 文件中(在 sites-enabled 文件夹中)将对站点的请求重定向到该维护页面。
您的 nginx 页面应包含:
server_name myhost.example.com;
root /path/to/html/file/directory;
index index.html;
以上3行就够了
我是 运行 django 和 nginx/gunicorn。我不太熟悉 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;
}
}
其中一种方法是在服务器的某处添加维护页面,然后在您的 nginx 文件中(在 sites-enabled 文件夹中)将对站点的请求重定向到该维护页面。 您的 nginx 页面应包含:
server_name myhost.example.com;
root /path/to/html/file/directory;
index index.html;
以上3行就够了