2011-07-25 59 views
3

如果我使用uWSGI而没有线程模式,它工作正常。但是我的原始服务器使用Apache ServerLimit 1(线程模式)运行。 它可以处理并发连接,但我的uWSGI不能(因为工人只有1,我认为)。 所以我尝试打开线程模式,但我会从nginx获得502错误网关错误消息。uWSGI:我遇到线程模式问题

我的日志告诉我: uwsgi:Modules/gcmodule.c:277:visit_decref:声明`gc-> gc.gc_refs!= 0'失败。

我不知道有什么问题,我怎样才能使它工作? 谢谢。

这里是我的配置:

[uwsgi] 

show-config=True 
socket=:8002 
pidfile=/var/run/unicorn_uwsgi.pid 
daemonize=/root/logs/unicorn_uwsgi.log 
vacuum=True 
enable-threads=True 
threads=40 
processes=1 
env=QTDIR=/root/lib/qt 
env=LD_LIBRARY_PATH=/root/lib/qt/lib 
env=DISPLAY=:99 
env=XAUTHORITY=/root/webapps/xvfb/Xauthority.xvfb 
module=WSGI 
home=/root/webapps/unicorn 
pythonpath=/root/Source/Server/Unicorn 
chdir=/root/Source/Server/Unicorn 

我使用nginx的如HTTP服务器,这里是配置:

server { 
    listen  80; 
    server_name _; 

    location/{ 
     include uwsgi_params; 
     uwsgi_pass 127.0.0.1:8002; 
    } 
} 

OS:CentOS的6.0,CPU:AMD速龙(TM)XP 2500 +,内存:2G

的Python 2.6.5(默认),uWSGI:0.9.8.2,nginx的:0.8.54

+0

你编译了一个自定义python,还是使用了centos6默认的?哪个uWSGI和Python版本? – 2011-07-25 05:41:34

回答

1

你可以尝试用分os6提供的PyQt4? (从你的配置看起来你使用的是pyqt,并且在pyqt中有这类问题的各种报告)

+0

我没有使用PyQT4,但是我使用C++编写了自己的QT4.7应用程序作为分叉过程。当请求到来时,我通过QT4.7.2为我的应用程序分配一些数据而不是返回响应。这在Apache + mod_wsgi线程模式下工作正常。 – Bear

+0

我无法重现你的错误,所以它是在应用程序中触发它的东西。你能发布你使用的第三方模块列表吗? – roberto

+0

这几天我仔细测试了一下,发现一个简单的django应用程序不会与我的配置崩溃。但是我的应用程序将得到“uwsgi:Modules/gcmodule.c:277:visit_decref:声明'gc-> gc.gc_refs!= 0'失败。”这个问题。这可能不是由第三方模块造成的。但我无法弄清楚我的应用程序出了什么问题,因为它不是在同一个地方造成的。在Apache + mod_wsgi线程模式下,我确信只有一件事情能够正常工作。我该如何诊断这个问题? – Bear