27

私はそのように構成されているよりもNginx仮想ホストを持っています:

...
location /one {
  include uwsgi_params;
  uwsgi_pass unix:///.../one.sock;
}
location /two {
  include uwsgi_params;
  uwsgi_pass unix:///.../two.sock
}
...

もちろんこれは単純化された構成です

リクエストするとき、Pythonスクリプトをとして/one/something受け取りたいです。/somethingrequest_uri

私はBottlePyを使用していますが、これをPythonコードではなくNginxで処理したいと考えています。

私は次のようなことをすることができますuwsgi_param REQUEST_URI replace($request_uri, '^/one', '')か?

編集

Pythonコードからのリクエストは次のとおりです。[pid:30052 | app:0 | req:1/1](){844バイトで42変数} [Tue Aug 21 14:22:07 2012] GET / one / something = > 4ミリ秒で0バイトを生成(HTTP / 1.1 200)85バイトで2つのヘッダー(コア0の0スイ​​ッチ)

したがって、Pythonは問題ありませんが、uWSGIは問題ありません。

それを修正する方法は?

4

4 に答える 4

41
location /one {
  rewrite /one/(.+) /$1 break;
  include uwsgi_params;
  uwsgi_pass unix:///.../one.sock;
}
于 2012-08-21T11:52:05.253 に答える
3

このスレッドは古いことは知っていますが、uWSGIを使用してPythonアプリを実行している場合は、これを解決する別の方法があります。

[uwsgi]
route-uri = ^/one/(.*) rewrite:/$1
于 2019-06-21T17:36:19.317 に答える
1

私はちょうど同じ問題に遭遇しました、そしてここに解決策があります

location /one {
    include uwsgi_params;
    uwsgi_pass unix:///.../one.sock;
    uwsgi_param SCRIPT_NAME /one;
    uwsgi_modifier1 30;
}

詳細については、http uwsgi_modifier1//uwsgi-docs.readthedocs.org/en/latest/Nginx.html#hosting-multiple-apps-in-the-same-process-aka-managing-script-name-andをご覧ください。 -パス情報

于 2016-02-04T10:08:13.397 に答える
0

私は別の方法でそれを解決しました:

[uwsgi]
module = wsgi:application
master = true
processes = 10
socket = 127.0.0.1:9090
mount = /one=customscript.py
manage-script-name = true

nginx

location /one {
  include uwsgi_params;
  uwsgi_pass 127.0.0.1:9090;
}
于 2019-11-19T08:07:57.443 に答える