【问题标题】:apache mod_wsgi basic authentication for django appdjango 应用程序的 apache mod_wsgi 基本身份验证
【发布时间】:2012-08-01 15:02:59
【问题描述】:

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

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

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

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

这可以用 django/apache2/mod_wsgi 完成吗?

【问题讨论】:

    标签: django apache mod-wsgi


    【解决方案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了解更多详情

    编辑:您的虚拟主机配置将类似于:

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

    【讨论】:

    • 我认为提问者已经弄清楚了这一点,因为他们已经为他们的 PHP 应用程序实现了它......
    • 有效的用户行应该是:Require valid-user
    【解决方案2】:

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

    【讨论】:

    • 澄清仅当 Python Web 应用程序是处理 HTTP 基本身份验证的应用程序时才需要 WSGIPassAuthorization。如果 Apache 仍在使用 Auth 指令处理它,则不需要设置 WSGIPassAuthorization。 REMOTE_USER 仍将传递给 WSGI 应用程序,无论 Apache 何时处理它。
    猜你喜欢
    • 2017-07-16
    • 2012-11-02
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 2011-04-06
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多