2011-11-11 30 views
1

我有一个运行在Apache上的mod_wsgi的Django应用,但是我想在同一台机器上创建一个开发服务器。只允许有预先确定的uname/passwd的用户访问Django网站

我可以通过http://IP_ADD访问我的网站,我想从http://IP_ADD:8080或其他端口到达开发服务器。

但是,正如您注意到的,我想阻止未输入预定用户名/密码的用户访问8080端口。

如何实现此类保护?我可能只允许某个IP地址,但这不是一个解决方案。

另一个问题是关于选择的端口。我选择了8080端口,但我也会设置问题跟踪系统,SVN等,我不确定应该为他们打开哪些端口。

谢谢

回答

1

对于每个要主持,你可以创建一个单独的Apache站点沿如下的虚拟主机文件的网站:

<VirtualHost *:8080> 
    ServerName www.example.com:8080 // Your name (if available) 
    ServerAlias 12.23.34.45   // Your IP 
    DocumentRoot /var/www/mydjangoapp // Your folder 

    <Directory /> 
    Order deny,allow 
    Deny from all 
    Allow from 127 
    AuthName "Restricted area" 
    AuthType Basic 
    AuthUserFile /etc/apache2/users_mydjangoapp // Allowed users file 
    require valid-user 
    </Directory> 

用户文件本身可以使用Apache的authentication system生成。对于每个站点,您可以添加一个单独的用户文件以包含系统该部分的访问权限。对于基于IP的访问,只需在Allow from 127行下面添加Allow from 123.123.123.123这样的行。

最后,通过创建更多这些Apache站点可创建其他站点(有关更多详细信息,请参阅here)。只需将端口(我的示例中的8080)调整为您要承载其他站点的端口即可。

相关问题