1

uwsgi を使用して Django アプリをデプロイしています。アプリは の下にデプロイされSERVER_URL:PORTます。

プロキシ サーバーを使用すると、アプリは 経由でもアクセスできますEXTERNAL_WEB_SITE/MY_APP_NAME

管理ページを使用すると、以下EXTERNAL_WEB_SITE/MY_APP_NAME/ADMIN/に正しいモデルが表示されます。ただし、管理ページ内のモデル自体へのリンクは、次の場所に移動しますEXTERNAL_WEB_SITE/ADMIN/MAIN_PACKAGE/SELECTED_MODEL/。つまり、提供されたリンクで MY_APP_NAME が渡されません。これは、サーバー自体でアプリがアプリ名なしで特定のポートのすぐ下に展開されているためだと思います。

それを解決するために、 で定義FORCE_SCRIPT_NAME=MY_APP_NAMEしてみましたsettings.py。これにより、良いリンクが得られます。BUT - オブジェクトを変更して保存しようとすると、下EXTERNAL_WEB_SITE/MY_APP_NAME/ADMIN/MAIN_PACKAGE/SELECTED_MODEL/ITEM/- ヒットした後、SaveリンクされてEXTERNAL_WEB_SITE/MY_APP_NAME/MY_APP_NAME/ADMIN/MAIN_PACKAGE/SELECTED_MODEL/ITEM/います - つまり、MY_APP_NAME を 2 回取得します。

この問題を解決する方法を知っている人はいますか?

4

1 に答える 1

0

SCRIPT_NAMEプロキシサーバーからのリクエストでenv変数を渡す必要があります

または、2 つのインスタンスを 1 つをFORCE_SCRIPT_NAMEset で実行し、2 つ目を set なしで実行することもできます。

uwsgi には、アプリを 2 つのポートにデプロイするか、(さらに良い) ヘッダーまたはパスに応じて環境変数を設定できるという優れたオプションがあります。

[uwsgi]
route = ^(/MY_APP_NAME)/ addvar:SCRIPT_NAME=$1
于 2016-06-13T22:31:22.193 に答える