处理具有多行的Excel文件时出现错误502

处理具有多行的Excel文件时出现错误502。

使用Django / Nginx

问题不在于文件的权重小于1Mb。

此页面对200行的文件正常工作,问题在文件有更多行时开始,然后页面花费太长时间来处理此文件。

这是错误的:

2012/07/28 14:29:54 [error] 18515#0: *34 upstream prematurely closed connection while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "POST /import/ HTTP/1.1", upstream: "http://127.0.0.1:9000/import/", host: "localhost:8080", referrer: "http://localhost:8080/import/" 

我正在使用非常大的值为variables,但我不断收到相同的错误。

这是该网站的configuration:


 upstream app_server { server 127.0.0.1:9000 fail_timeout=3600s; keepalive 3600s; } server { listen 8080; client_max_body_size 4G; server_name localhost; keepalive_timeout 3600s; client_header_timeout 3600s; client_body_timeout 3600s; send_timeout 3600s; location /static/ { root /my path/; autoindex on; expires 7d; } location /media/ { root /my path/; autoindex on; expires 7d; } location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; proxy_redirect off; proxy_connect_timeout 3600s; proxy_send_timeout 3600s; proxy_read_timeout 3600s; if (!-f $request_filename) { proxy_pass http://app_server; break; } } } 

这是全球configuration:


 user www-data; worker_processes 1; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; access_log /var/log/nginx/access.log; sendfile on; keepalive_timeout 3600s; tcp_nodelay on; client_header_timeout 3600s; client_body_timeout 3600s; send_timeout 3600s; proxy_connect_timeout 3600s; proxy_send_timeout 3600s; proxy_read_timeout 3600s; client_max_body_size 200m; client_body_buffer_size 128k; gzip on; gzip_disable "MSIE [1-6]\.(?!.*SV1)"; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; } 

你能给我一些帮助吗?

最好的祝福

最好的选择是重写例程来使用django-celery,但是如果你想要一个快速的解决方案,你可以尝试在Nginx中升级你的代理传递的超时时间,方法如下:

 proxy_connect_timeout 300s; proxy_read_timeout 300s; 

如果要增加nginx提供服务的所有站点的超时时间,则应在/ var / nginx / sites-available / [site-config]上将此配置添加到特定站点或/var/nginx/nginx.conf。

如果你使用gunicorn,你必须添加–timeout = 300。 例:

 gunicorn_django -D -b 127.0.0.1:8901 --workers=2 --pid=/var/webapp/campus.pid --settings=settings.production --timeout 300 --pythonpath=/var/webapp/campus/ 

参考文献: