2011-07-25 101 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