Я пытаюсь запустить приложение Django с помощью Nginx + uwsgi, но после одной минуты загрузки получаю 504 Gateway Time-out
.504 Gateway Time-out uwsgi + nginx django application
Мое приложение требует времени, необходимого для поиска конкретных вещей на нескольких веб-сайтах.
Мой Nginx конф является следующий:
upstream uwsgi {
server 127.0.0.1:8000;
}
server {
listen 80;
server_name server_ip;
root /opt/emails/subscriptions;
index index.html index.htm index.php;
location /emailsproject/ {
root /opt/emails/subscriptions/;
}
location/{
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://uwsgi;
proxy_set_header Host $http_host;
uwsgi_read_timeout 18000;
}
}
Мой uwsgi сценарий:
description "uWSGI server"
env PYTHONPATH=/opt/emails/subscriptions
env DJANGO_SETTINGS_MODULE=emailsproject.settings
start on runlevel [2345]
stop on runlevel [!2345]
respawn
exec uwsgi_python --http-socket 127.0.0.1:8000 -p 4 --wsgi-file /opt/emails/subscriptions/emailsproject/wsgi.py
Мой Nginx дает мне сообщение об ошибке в followin error.log:
2015/09/28 02:15:57 [error] 4450#0: *19 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 37.235.53.246, server: my_server_ip, request: "POST /home/ HTTP/1.1", upstream: "http://127.0.0.1:8000/home/", host: "my_server_ip", referrer: "http://my_server_ip/home/"
Кто-нибудь знает, как я могу избавиться от этого? Я пробовал множество решений stackoverflows, но никто не работал для меня.
Если ваше приложение работает с длинным процессом, вы можете попробовать запустить его асинхронно с сельдереем. Nginx может иметь возможность увеличить время ожидания, но не стоит иметь длительные синхронные задачи. http://celery.readthedocs.org/ru/latest/django/first-steps-with-django.html – cdvv7788
Вы нашли решение? – rkatkam