Django

时间:2016-03-05 06:08:08

标签: python django nginx

我使用1ClickInstallation图像在DigitalOcean上运行Django站点。每件事都运行正常,但我遇到了504网关超时错误的问题。我在博客上尝试了多种设置但没有工作。以下是我的设置:

upstream app_server {
    server 127.0.0.1:9000 fail_timeout=0;

}


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

    root /home/django/django_project;
    index index.html index.htm;

    client_max_body_size 4G;
    server_name www.mydomain.com;


    keepalive_timeout 5;

    location ~*  \.(jpg|jpeg|png|gif|ico|css|js|woff2|woff|ttf)$ {
        expires 365d;
    }



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

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


    # Proxy the static assests for the Django Admin panel
    location /static/admin {
       alias /usr/lib/python2.7/dist-packages/django/contrib/admin/static/admin;
    }

    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;

    }
}

我在以下链接http://nginx.org/en/docs/http/ngx_http_limit_req_module.html

上关注了文档

以下是“wget 127.0.0.1:9000”的结果

enter image description here

但是无法确定添加指令的确切位置。好心提醒。

3 个答案:

答案 0 :(得分:8)

如果您对django使用 uwsgi ,那么您可以将 uwsgi_read_timeout 指令添加到位置位置的nginx配置文件

location / { 
    uwsgi_read_timeout 120; 
}

答案 1 :(得分:5)

我在/etc/nginx/sites-available/django-project尝试进行更改时找到了解决方案。但我需要在/etc/ninx/nginx.conf Nginx的全局设置中添加以下行。我添加的行是:

http {
    ...
    proxy_connect_timeout   10;
    proxy_send_timeout      15;
    proxy_read_timeout      20;
}

我有一个小型网站托管,上面这个设置已经足够了。但其他人可能会根据自己的需要设置设置。

答案 2 :(得分:0)

我知道我在这里参加聚会很晚,但是在尝试了许多这些建议(和其他建议)之后,我最终发现我的超时发生在我的 DNS 中-如果您使用的是< strong> Amazon负载均衡器,它们的“空闲超时”默认设置为120秒。