1

我需要在我的小型 Python 应用程序(只有一个脚本)中从 nginx + uWSGI 获取身份验证数据。身份验证必须在 Web 服务器端(例如 nginx,nginx.conf 中的基本身份验证)而不是在 Python 应用程序中实现,这很重要!所以,没有中间件或类似的东西会有所帮助......

我想 uWSGI 必须通过它的 API 或 smth 将此数据发送到我的 Python 应用程序。

如何在我的 Python 脚本中获取这些数据?我需要像

$_SERVER['PHP_AUTH_USER']

在 php.ini 中。

uWSGI 配置:

[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 回答