我有一个简单的应用程序,允许您将图像上传到服务器,它在我的生产服务器上设置,包括django + uwsgi + ngnix。
尝试上传图片时遇到问题。我收到以下错误:
错误
502 Bad Gateway
nginx/1.2.1
功能:
def upload(request):
form = ImageForm()
context = {'form':form,}
context.update(csrf(request))
if request.POST:
form = ImageForm(request.POST, request.FILES)
if form_is.valid():
image = request.FILES.get('image')
CarPhoto.objects.create(user=request.user,cars=1,description='dwq',image=image)
return HttpResponseRedirect(reverse('transformer:kevin'))
return render_to_response('image.html',context,context_instance=RequestContext(request))
模板
<form method="POST" enctype="multipart/form-data" action=".">
{% csrf_token %}
<div id="c">image</div> {{form.image}}
<input type = "submit" value= "add" id="box2"/>
</form>
mysite.com_error.log
"uwsgi://unix:///tmp/mysite.com.sock:", host: "174.414.14.551", referrer: "http://174.414.14.551/car/upload"
2013/06/26 12:07:39 [error] 28870#0: *5 sendfile() failed (32: Broken pipe) while sending request to upstream, client: 313.19.220.424, server: mysite.com, request: "POST /car/ HTTP/1.1", upstream: "uwsgi://unix:///tmp/mysite.com.sock:", host: "174.414.14.551", referrer: "http://174.414.14.551/car/upload"
2013/06/26 12:08:12 [error] 29065#0: *5 sendfile() failed (32: Broken pipe) while sending request to upstream, client: 313.19.220.424, server: mysite.com, request: "POST /car/ HTTP/1.1", upstream: "uwsgi://unix:///tmp/mysite.com.sock:", host: "174.414.14.551", referrer: "http://174.414.14.551/car/upload"
2013/06/26 12:08:18 [error] 29065#0: *7 readv() failed (104: Connection reset by peer) while reading upstream, client: 313.19.220.424, server: mysite.com, request: "POST /car/ HTTP/1.1", upstream: "uwsgi://unix:///tmp/mysite.com.sock:", host: "174.414.14.551", referrer: "http://174.414.14.551/car/upload"
2013/06/26 12:09:11 [error] 29065#0: *9 readv() failed (104: Connection reset by peer) while reading upstream, client: 313.19.220.424, server: mysite.com, request: "POST /car/ HTTP/1.1", upstream: "uwsgi://unix:///tmp/mysite.com.sock:", host: "174.414.14.551", referrer: "http://174.414.14.551/car/upload"
2013/06/26 12:09:52 [error] 29065#0: *14 sendfile() failed (32: Broken pipe) while sending request to upstream, client: 313.19.220.424, server: mysite.com, request: "POST /car/ HTTP/1.1", upstream: "uwsgi://unix:///tmp/mysite.com.sock:", host: "174.414.14.551", referrer: "http://174.414.14.551/car/upload"
2013/06/26 12:10:51 [error] 29065#0: *19 sendfile() failed (32: Broken pipe) while sending request to upstream, client: 313.19.220.424, server: mysite.com, request: "POST /car/ HTTP/1.1", upstream: "uwsgi://unix:///tmp/mysite.com.sock:", host: "174.414.14.551", referrer: "http://174.414.14.551/car/upload"
答案 0 :(得分:1)
听起来你的uWSGI实例已经死亡或者以一种不知道如何回答的方式失败。
首先观察除了uWSGI日志之外的nginx日志,看看它有多远。
你上传的文件可能太大了,它会阻塞一些前端部分。
编辑帖子以指示两个日志文件的输出,我们将看到。
答案 1 :(得分:1)
如果您的项目中包含第三方应用程序,那么它应该安装在您的服务器上,就像南方是第三方应用程序一样。 考虑在您的settings.py文件中包含south,然后南也应该安装在您的服务器上。 如果该模块在这里考虑南,已经安装在服务器上然后尝试升级它。因为您可能在本地计算机上使用升级版本的模块,并且在服务器中安装了旧版本。