Django与Nginx + Gunicorn的Basic Auth失败

时间:2014-12-11 13:34:19

标签: python django nginx gunicorn

我正在尝试使用nginx来平衡2台gunicorn服务器。我需要在应用程序上使用基本身份验证,所以我认为我会将身份验证放在nginx服务器上。

但是由于某种原因,当我启用基本身份验证nginx服务器时,我的Django完全失败了。在我的nginx conf中禁用basic后,一切正常。

这是我的nginx conf。

upstream backend {
    server 10.0.4.3;
    server 10.0.4.4;
}




server {
    listen 80;


    location / {
         proxy_pass http://backend;
     proxy_set_header X-Forwarded-Host $server_name;
            proxy_set_header X-Real-IP $remote_addr;
            add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"';
             auth_basic "Restricted";
           auth_basic_user_file /etc/nginx/.htpasswd;
            proxy_set_header REMOTE_USER $remote_user;

    }

    location /orders
    {
     auth_basic "off" ;
    }
}

这是我得到的错误:

Error importing module keystone_auth.backend: "No module named keystone_auth.backend"

我认为可能需要通过一些标题。还有另一种方法可以在Django上获得基本身份验证,因为它需要负载均衡。或者我的ngnix配置缺少一些东西?

1 个答案:

答案 0 :(得分:0)

keystone_auth.backend错误地被包含在另一个设置文件中,我仍然无法使BasicAuth工作,但最终通过编写我自己的Auth Back端来解决问题,如此处所述。

https://docs.djangoproject.com/en/dev/topics/auth/customizing/