2012-04-20 13 views
5

私は問題に遭遇しました。私はPythonスクリプトを持っています。 CGIスクリプトと呼ぶことができます。それはApache2の下ではうまく動作しますが、シャットダウンする前に残っているのは1つだけです。新しいシステムはnginxを使用します。 ソリューションで検索しながらこのスクリプトを実行するために構成された仮想ホストを検索している間に、多くのユーザーが推奨するようにuwsgiを構成しました。 uwsgi wikiの最初の例を使って、nginxが正しく構成されていることを確認しました。これはuwsgiと通信できます。チャームのように働いた。今nginx uwsgiとcgi pythonスクリプト

私の合併症:私のスクリプトは、いくつかの時間前に書かれたとWSGIのために設計されていない、また私は/がそれを書き換えることができますしたい

私はuwsgiのcgiモジュールをインストールし、それを使ってみました。私が得るのは502エラーです。何も実行されていないuwsgi。ここで

は、私がこのアプリのために使用しています私の設定です:ここでは

[uwsgi] 
plugins = cgi 
socket = 127.0.0.1:9010 
cgi = /=/usr/share/test/ 
cgi-allowed-ext = .py 
cgi-helper = .py=python 

は私がindex.py(テストスクリプト)を持っているコードです:

#!/usr/bin/python 
print "Content-type: text/html\n\n" 
print "<html><body><h1>It works!</h1></body></html>" 

私はuwsgiテストしよう次のコマンドを実行します。

/usr/sbin/uwsgi --http :9011 --ini /etc/uwsgi/test.ini --master 

そして、ここでは、私が手に出力され

[uWSGI] getting INI configuration from /etc/uwsgi/test.ini 
*** Starting uWSGI 1.1.2 (64bit) on [Fri Apr 20 15:26:33 2012] *** 
compiled with version: 4.4.6 20110731 (Red Hat 4.4.6-3) on 19 April 2012 15:09:37 
current working directory: /home/user 
detected binary path: /usr/sbin/uwsgi 
your memory page size is 4096 bytes 
detected max file descriptor number: 1024 
lock engine: pthread mutexes 
uWSGI http bound on :9011 fd 3 
uwsgi socket 0 bound to TCP address 127.0.0.1:9010 fd 6 
your server socket listen backlog is limited to 100 connections 
*** Operational MODE: single process *** 
initialized CGI mountpoint:/= /usr/share/test/ 
*** no app loaded. going in full dynamic mode *** 
*** uWSGI is running in multiple interpreter mode *** 
spawned uWSGI master process (pid: 6727) 
spawned uWSGI worker 1 (pid: 6728, cores: 1) 
spawned uWSGI http 1 (pid: 6729) 
-- unavailable modifier requested: 0 -- 
-- unavailable modifier requested: 0 -- 
-- unavailable modifier requested: 0 -- 
-- unavailable modifier requested: 0 -- 

問題はどこですか?助けてください。

ありがとうございます。

+0

偉大な解決策を見つけましたが、それを答えとして追加する方が良いです。投稿を読む他の人には明らかになります。ありがとう! – CharlesB

+0

@CharlesBそれは私の計画でしたが、7時間待つことになりました。解決策を見つけたのですぐに投稿したいと思っていました。私は今日または明後のコメントにそれを移します。ありがとう。 – sashk

+0

これはあなたがあなたが答えを知ることができることを忘れないように親切な思い出です:) – CharlesB

答えて

6

私は十分にuwsgi WIKIを読まなかった。私がしなければならなかったのは、コマンドラインスイッチに--http-modifier1 9を追加するか、またはnginx configにuwsgi_modifier1 9;を追加するだけです。

location/{ 
    include /etc/nginx/uwsgi_params; 
    uwsgi_modifier1 9; 
    uwsgi_pass 127.0.0.1:9010; 
} 

/usr/sbin/uwsgi --http :9011 --http-modifier1 9 --ini /etc/uwsgi/test.ini --master 
関連する問題