Python Django HttpResponse注销时出现内部服务器错误

Python Django HttpResponse注销时出现内部服务器错误,python,django,nginx,uwsgi,Python,Django,Nginx,Uwsgi,我在Django应用程序中有一个JSON数据的JQuery请求(从vitrualenv开始,使用uwsgi和nginx): $.getJSON(url、函数(数据){ var obl=“/raj/?raj=“+data.id; $.getJSON(obl,函数(raj_数据){ ... } ); } ); 以及相应的观点: def rcoato(请求): response_data=SprRegion.objects.values('id').get(Q(id=request.get['reg

我在Django应用程序中有一个JSON数据的JQuery请求(从vitrualenv开始,使用
uwsgi
nginx
):

$.getJSON(url、函数(数据){
var obl=“/raj/?raj=“+data.id;
$.getJSON(obl,函数(raj_数据){
...
} );
} );
以及相应的观点:

def rcoato(请求):
response_data=SprRegion.objects.values('id').get(Q(id=request.get['region']))
response\u data=json.dumps(response\u data)
返回HttpResponse(响应\u数据,内容\u type='application/javascript')
它工作正常,返回JSON数据,但只有在我通过SSH登录时才返回。 我可以通过以下方式启动我的应用程序:

sourcevirtualenv/bin/activate
uwsgi--xml/home/rino/sites/center/uwsgi.xml&
当我注销时(使用
setopt no_hup
setopt no_checkjobs
),我的应用程序部分工作-HTML页面正在呈现,静态文件正在处理,但请求
/raj/?raj=…
会引发内部服务器错误500

My
nginx.conf

server {
       listen 8081;
       server_name localhost;
       access_log /var/log/nginx/nginx_centre_access.log;
       error_log /var/log/nginx/nginx_centre_error.log;

       location /static {    
           autoindex on;    
           alias /home/rino/sites/centre/centre/static/;    
       }

       location / {
           uwsgi_pass 127.0.0.1:3031;
           include /home/rino/sites/centre/uwsgi_params;
       }
}
uwsgi
config:


127.0.0.1:3031
5.
/主页/里诺/网站/中心
/主页/rino/站点/中心/中心
/主页/rino/sites/centre/centre/wsgi.py
/tmp/centre-master.pid
蟒蛇3
5000
40
真的
2.
cat nginx_center_error.log | tail
在上述注销和查询请求后:

2014/10/03 07:34:46 [error] 20657#0: *296 connect() failed (111: Connection refused) 
while connecting to upstream, client: 176.100.173.177, server: localhost, request: "GET 
/settler/ HTTP/1.1", upstream: "uwsgi://127.0.0.1:3031", host: "myhost.com:8081",   
referrer:  "http://myhost.com/settlersmain/"

2014/10/03 07:56:55 [error] 20657#0: *335 connect() failed (111: Connection refused) 
while connecting to upstream, client: 176.100.173.177, server: localhost, request: 
"GET / HTTP/1.1", upstream: "uwsgi://127.0.0.1:3031", host: "myhost.com:8081"
2014/10/03 08:23:33 [error] 20657#0: *367 open()
谢谢你的帮助


UPD:我将
nginx.conf
server\u name
行中的
localhost
替换为服务器IP地址,但问题仍然存在。

根据日志,您有
(111:连接被拒绝)
错误,这意味着在关闭ssh连接后uwsgi进程被终止

您可以尝试使用
nohup

uWSGI有权选择。这是一个更好的方法,uWSGI将处理从控制台分离


但我建议你使用类似于uWSGI的东西。或者您可以使用系统的
init.d
脚本,或者

您是否与其他用户共享,
root
可能?请尝试在django项目中启用
debug=True
,以便在中看到错误详细信息browser@stalk,没有错误详细信息,我有相同的。@Ngenator,相同的问题。我看到的一个问题是:
SprRegion.objects.values('id')).get(Q(id=request.get['region'])
.get()
返回一个对象,该对象没有
属性。您可能需要使用
过滤器
。Daemonize是一种方法。如果您无法解释服务正在消亡,根据我的经验,让它自动重新启动并不是最好的做法,但如果进程因注销而终止,则ymmv.Daemonize将起作用,即
setopt no_hup
不起作用。但是,如果它由于另一个原因(一些未处理的异常)而死亡,它将在守护进程模式下继续死亡。尝试使用
logto
设置uwsgi日志记录,并检查是什么原因导致它exit@Igor,我使用运行uwsgi的Upstart config。很好,谢谢。