1

nginx + uWSGI から小さな Python アプリ (1 つのスクリプトのみ) で認証データを取得する必要があります。認証は、Python アプリではなく Web サーバー側 (nginx、nginx.conf の基本認証など) で実装する必要があり、これは重要です! したがって、ミドルウェアなどは役に立ちません...

uWSGI は、このデータを API または smth を介して Python アプリに送信する必要があると思います。

Python スクリプトでこのデータを取得するにはどうすればよいですか? 次のようなものが必要です

$_SERVER['PHP_AUTH_USER']

phpで。

uWSGI confing:

[uwsgi]

socket = /tmp/uwsgi.sock
processes = 4
master = true
module = myapp
harakiri = 30
cache = false
daemonize = /var/log/uwsgi.log

nginx 構成:

server {
listen       8080;
server_name  _;


location / {
    include        uwsgi_params;
    uwsgi_pass     unix:///tmp/uwsgi.sock;
uwsgi_cache off;    
}

}

ありがとうございました!

4

2 に答える 2

2

追加してみてください

uwsgi_param REMOTE_USER $remote_user;

nginx の設定で

ユーザー名は、environ['REMOTE_USER'] にあります。

于 2012-06-24T21:28:10.263 に答える
0

uwsgi を使用したアプリのエントリ ポイントを期待していました。ドキュメントには、あなたを助けるかもしれないこのリンクがあります。

http://projects.unbit.it/uwsgi/wiki/Quickstart

これは最も簡単なセットアップです。

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return "Hello World"

start_response は、wsgi プロトコルに従って新しい応答を作成するための変数です。env はすべてのデータの行き先です。つまり、$_GET、$_POST などは、ある時点でその変数に含まれている必要があります。

探している変数は、nginx にあるように名前を付ける必要があります。通常、これは HTTP_AUTHENTICATION と呼ばれます。すべてを表示するには、端末にダンプするか、デバッガーを使用してその変数を調べる必要があります。

于 2012-06-24T20:37:12.557 に答える