关闭 django 站点进行维护?
Posted
技术标签:
【中文标题】关闭 django 站点进行维护?【英文标题】:taking a django site down for maintenance? 【发布时间】:2016-03-12 23:03:33 【问题描述】:我正在使用 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】:其中一种方法是在服务器的某处添加维护页面,然后在您的 nginx 文件中(在启用站点的文件夹中)将请求重定向到该维护页面的站点。 您的 nginx 页面应包含:
server_name myhost.example.com;
root /path/to/html/file/directory;
index index.html;
只有上面3行就够了
【讨论】:
我试过了,但奇怪的是,即使在我重新启动服务器后它似乎也没有效果。我不知道为什么它不起作用 @deltaskelta 您是否删除了代理转发到 gunicorn 服务器? 不,里面有四行我没碰过...将它们添加到主帖 我当然在 nginx 配置文件中有这些行。我应该删除它们吗?好像不是这样的 @deltaskelta 您在问题中显示的行仅在您要重定向请求时才需要。因此您可以在维护期间将它们注释掉以上是关于关闭 django 站点进行维护?的主要内容,如果未能解决你的问题,请参考以下文章