首页 文章

apache mod_wsgi django app的基本身份验证

提问于
浏览
2

我已经完成了第一个基于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 回答

  • 1

    您可以为虚拟主机 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

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

    <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>
    
  • 3

    mod_wsgi不需要使用WSGIPassAuthorization,但在这种情况下这不是一个问题,因为Django有自己的独立于HTTP身份验证的身份验证方案 .

相关问题