apache mod_wsgi django app的基本身份验证

时间:2012-08-01 15:02:59

标签: django apache mod-wsgi

我已经完成了第一个基于django的网站,我已准备好在liveserver上部署。但是,我不希望这个网站在调整和测试时现在对公众可见。

在PHP网站上,我总是通过.htaccess使用基本的http身份验证来进行最后的更改。这是一个两个班轮,拒绝访问整个网站。

理想情况下,我想运行这样的环境:

  • static.mydomain.com(由apache2为静态文件提供服务)
  • mydomain.com(apache2提供mod_wsgi最新稳定版本 - >可供公众使用)
  • dev.mydomain.com(由带有mod_wsgi dev / testing的apache2提供 - >不可用于公共(基本身份验证))

可以使用django / apache2 / mod_wsgi吗?

2 个答案:

答案 0 :(得分:3)

您可以为虚拟主机dev.mydomain.com设置基本身份验证。请查看http://httpd.apache.org/docs/2.2/mod/mod_auth_basic.htmlhttp://httpd.apache.org/docs/2.2/vhosts/name-based.html了解详情

编辑:您的虚拟主机配置看起来像:

<VirtualHost *:80>

    ServerName mydomain.com
    DocumentRoot /srv/www/wsgi

    <Directory /srv/www/wsgi>
        Order allow,deny
        Allow from all
    </Directory>

    WSGIScriptAlias / /srv/www/wsgi/app.wsgi

</VirtualHost>

<VirtualHost *:80>

    ServerName dev.mydomain.com
    DocumentRoot /srv/www/wsgi-dev

    <Directory /srv/www/wsgi-dev>
        Order allow,deny
        Allow from all
    </Directory>

    WSGIScriptAlias / /srv/www/wsgi-dev/app.wsgi

    <Location />
        AuthType Basic
        AuthName "Restricted Files"
        AuthUserFile /usr/local/apache/passwd/passwords
        Require valid-user
    </Location>

</VirtualHost>

答案 1 :(得分:1)

mod_wsgi不关心你是否使用HTTP身份验证。唯一的规定是,如果你希望它对WSGI应用程序可见,那么你需要使用WSGIPassAuthorization,但在这种情况下这不是一个问题,因为Django有自己的独立于HTTP身份验证的身份验证方案