apache mod_wsgi django 应用程序的基本身份验证

Joe*_*oey 3 apache django mod-wsgi

我已经完成了第一个基于 django 的网站,并准备在实时服务器上部署。但是,我不希望在调整和测试时暂时向公众显示该网站。

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

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

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

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

Pav*_*kov 5

您可以为您的虚拟主机设置基本身份验证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>
Run Code Online (Sandbox Code Playgroud)