我使用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”的结果
但是无法确定添加指令的确切位置。好心提醒。
答案 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秒。