0

Python で簡単な CMS を作成しました。現在 Apache で実行されており、/usr/lib/cgi-bin にある一連の python スクリプトで構成されています。Nginx で CMS を動作させようとしています。私はこれまで Nginx を使用したことがないので、Nginx に精通している方からの意見をいただければ幸いです。

CMS を変更せずに実行したい - 理想的には、Apache と Nginx で CMS を使用できるようにしたいのですが、2 つの別々のバージョンを維持したくありません。

メイン スクリプトは /usr/lib/cgi-bin/pyindex.py です。/etc/nginx/sites-available/default に 2 つの場所を設定しました。

location / {
    # First attempt to serve request as file, then
    # as directory, then fall back to displaying a 404.
    try_files $uri $uri/dir.html /cgi-bin/pyindex.py?q=$uri;
}

location /cgi-bin/ {
            include uwsgi_params;
            uwsgi_pass 127.0.0.1:8080;
}

uwsgi と uwsgi-plugin-python をインストールし、次のように /etc/uwsgi/apps-available/mydomainname.com.xml をセットアップしました。

<uwsgi>
    <plugin>python</plugin>
    <plugin>cgi</plugin>
    <socket>127.0.0.1:8080</socket>
    <chdir>/usr/lib/cgi-bin/</chdir>
    <pythonpath>/usr/lib/cgi-bin/</pythonpath>
    <module>pyindex.py</module>
    <cgi>/cgi-bin=/usr/lib/cgi-bin/</cgi>
    <cgi-allowed-ext>.py</cgi-allowed-ext>
    <master/>
    <processes>4</processes>
    <harakiri>60</harakiri>
    <reload-mercy>8</reload-mercy>
    <cpu-affinity>1</cpu-affinity>
    <stats>/tmp/stats.socket</stats>
    <max-requests>2000</max-requests>
    <limit-as>512</limit-as>
    <reload-on-as>256</reload-on-as>
    <reload-on-rss>192</reload-on-rss>
    <no-orphans/>
    <vacuum/>
</uwsgi>

ブラウザで動的ページを表示すると、次のエラー メッセージが表示されます。

uWSGI エラー

Python アプリケーションが見つかりません

したがって、nginx は正常にリクエストを uwsgi に渡しているように見えますが、uwsgi が正しくセットアップされていません。

/var/log/uwsgi/app/mydomainname.com.log のログは、uwsgi の起動時に pyindex.py が実行され、QUERY_STRING 環境変数が使用できないためにフォールオーバーすることを示しています。nginx から uwsgi にリクエストが渡されると、スクリプトは実行されません。

pyindex.py が起動時に実行されず、uwsgi が nginx からリクエストを受信したときに実行されるように設定する方法はありますか?

Raspbian で Nginx v 1.2.1、uwsgi 1.2.3、Python 2.7 を使用しています。

前もって感謝します

4

1 に答える 1