我有一个使用mod_wsgi在Apache上运行的Django applciation,但我想在同一台机器上创建一个开发服务器。
我可以通过http://IP_ADD访问我的网站,我希望从http://IP_ADD:8080或其他端口访问开发服务器。
但正如您所注意到的,我想阻止未输入预定用户名/密码的用户访问8080端口。
我怎样才能获得这种保护?我可能只允许某些IP地址,但它不是解决方案。
另一个问题也是关于选择的港口。我选择8080端口,但我也会设置问题跟踪系统,SVN等。我不确定我应该为他们打开哪些端口。
谢谢
答案 0 :(得分:1)
对于您要托管的每个站点,您可以创建一个单独的Apache站点,其中包含以下几行的VirtualHost文件:
<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 123.123.123.123
行下方添加Allow from 127
行。
最后,可以通过创建更多这些Apache站点来创建其他站点(有关详细信息,请参阅示例here)。只需将端口(我的示例中为8080
)修改为您要在其下托管其他网站的端口。
答案 1 :(得分:0)
您可以添加基本身份验证 http://djangosnippets.org/snippets/1304/