/ / 504 गेटवे टाइम-आउट uwsgi + nginx django एप्लिकेशन - django, nginx, uwsgi

504 गेटवे टाइम-आउट uwsgi + nginx django एप्लीकेशन - django, nginx, uwsw

मैं Nginx + uwsgi का उपयोग करके अपने Django एप्लिकेशन को चलाने का प्रयास कर रहा हूं, लेकिन मुझे प्राप्त होता है 504 Gateway Time-out लोडिंग के एक मिनट बाद।

मेरी ऐप को वह करने में समय लगता है, जो कई वेबसाइटों पर विशिष्ट चीजों की खोज के लिए आवश्यक है।

मेरा नग्नेक्स आत्मविश्वास अगले एक है:

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/"

क्या किसी को इस पर कोई विचार है कि मैं इससे कैसे छुटकारा पा सकता हूं? मैंने स्टैकओवरफ्लो समाधान के टन की कोशिश की, लेकिन मेरे लिए कोई भी काम नहीं किया।

उत्तर:

जवाब के लिए 2 № 1

यदि इसका आंतरिक कार्य प्रसंस्करण के लिए बहुत अधिक समय लेता है, तो कार्य को चलाने के लिए अजवाइन का उपयोग करें। http://docs.celeryproject.org/en/latest/userguide/tasks.html

यदि इसकी पूरी तरह से आंतरिक कार्य नहीं है, जैसे: - एक बड़ी फ़ाइल अपलोड करना, तो Nginx client_body_timeout को 60s से अधिक में बढ़ाएं।

इसकी वजह nginx config में डिफ़ॉल्ट टाइमआउट है। Nginx वर्चुअल होस्ट फ़ाइल संपादित करें और निम्न पंक्ति को इसमें जोड़ें सर्वर {} अनुभाग। http://nginx.org/en/docs/http/ngx_http_core_module.html#client_body_timeout

# defualt is 60 seconds, For a 300 second timeout.
client_body_timeout 300s;

संपादित करें: uwsgi_read_timeout 300s; की भी जरूरत है। लेकिन यह पहले से ही आपके विन्यास में है।