3

普段はチェロキーを使っています。最新のChromeリリースに関するいくつかの重大な問題のため、当面は本番サーバーをnginxに変更する必要がありました。

現在、チェロキーの場合と同じように構成を機能させようとしています。私は非常に単純なuwsgiハンドラーを使用しています:

    location /project1 {
            include uwsgi_params;
            uwsgi_pass localhost:3032;
    }

正常に動作します。プロジェクトはmyurl.com/project1で入手できます。しかし、djangoはmyurl.comをプロジェクトルートとして使用します。

どのように機能させたいかの例:1つのサブドメイン上の複数のプロジェクト:/ project1のproject1、/project2のproject2など。

Djangoの正規表現ルール「^$」は、次のようなすべてのプロジェクトで機能するはずです。

Project1の場合:^ $-> / project1

Project2の場合:^ $->/project2など。

nginxでこれを機能させる方法はありますか?

乾杯、

4

1 に答える 1

1

nginxはSCRIPT_NAMEをチェロキーとして自動的に設定しません。

あなたはそれを強制することができます

uwsgi_param SCRIPT_NAME / project1;

次に、PATH_INFOを書き直す必要があります。これは、uWSGIが自動的に行うことができます。

uwsgi_modifier1 30

したがって、完全なnginx構成:

 location /project1 {

        include uwsgi_params;
        uwsgi_param SCRIPT_NAME /project1;
        uwsgi_modifier1 30;
        uwsgi_pass localhost:3032;
}

別のアプローチは、uWSGIですべてのジョブを実行し、オプションとして--manage-script-nameを渡し、nginx構成を変更しないままにすることです。

于 2011-12-23T16:25:59.407 に答える