J'exécute un site Django sur DigitalOcean en utilisant l'image 1ClickInstallation. Tout a bien fonctionné, mais j'ai eu un problème d'erreur de temporisation de la passerelle 504. J'ai essayé plusieurs paramètres sur les blogs mais ne fonctionne pas. Voici mes paramètres:

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;

    }
}

J'ai suivi les documents sur le lien suivant http://nginx.org/en/docs/http/ngx_http_limit_req_module .html

Voici le résultat de "wget 127.0.0.1:9000"

enter image description here

Mais ne pouvait pas comprendre où exactement ajouter des directives. Veuillez aviser.

6
Shazia Nusrat 5 mars 2016 à 09:08

3 réponses

Meilleure réponse

J'ai trouvé la solution en essayant d'apporter des modifications dans /etc/nginx/sites-available/django-project. Mais j'avais besoin d'ajouter les lignes suivantes dans /etc/nginx/nginx.conf les paramètres globaux pour Nginx. Les lignes que j'ai ajoutées sont:

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

J'ai un petit site Web hébergé et celui-ci les paramètres ci-dessus sont suffisants. Mais d'autres peuvent définir leurs paramètres en fonction de leurs besoins.

8
chirinosky 29 nov. 2019 à 22:49

Je sais que je suis en retard à la fête ici, mais après avoir essayé bon nombre de ces suggestions (et d'autres), j'ai finalement découvert que le délai d'attente pour moi se produisait à partir de mon DNS - si vous utilisez Amazon les équilibreurs de charge ont un "délai d'inactivité" défini à 120 s par défaut.

1
Phillip Watts 1 oct. 2018 à 13:56

Si vous utilisez uwsgi avec django, vous pouvez ajouter la directive uwsgi_read_timeout au fichier de configuration de nginx à l'emplacement de l'emplacement

location / { 
    uwsgi_read_timeout 120; 
}
9
Lukasz Dynowski 6 oct. 2016 à 12:52