我正在尝试使用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配置缺少一些东西?
答案 0 :(得分:0)
keystone_auth.backend错误地被包含在另一个设置文件中,我仍然无法使BasicAuth工作,但最终通过编写我自己的Auth Back端来解决问题,如此处所述。
https://docs.djangoproject.com/en/dev/topics/auth/customizing/