2011-11-11 2 views
1

J'ai une application Django exécutée sur Apache avec mod_wsgi, mais je voudrais créer un serveur de développement sur la même machine.Autoriser uniquement les utilisateurs qui ont uname/passwd prédéterminé à accéder à un site Web Django

Je peux atteindre mon site Web par http://IP_ADD et je voudrais atteindre le serveur de développement de http://IP_ADD:8080 ou un autre port.

Mais comme vous le remarquez, je voudrais empêcher l'accès au port 8080 des utilisateurs qui n'entrent pas le nom d'utilisateur/mot de passe prédéterminé.

Comment puis-je obtenir une telle protection? Je peux autoriser seulement certaines adresses IP mais ce n'est pas une solution.

Une autre question concerne également le port choisi. J'ai le port 8080 de choix mais je vais également installer le système de suivi des problèmes, SVN etc. et je ne suis pas sûr quels ports devrais-je ouvrir pour eux.

Merci

Répondre

1

Pour chacun des sites que vous souhaitez héberger, vous pouvez créer un site Apache séparé avec un fichier VirtualHost le long des lignes suivantes:

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

Le fichier utilisateur lui-même peut être généré à l'aide de authentication system d'Apache. Pour chaque site, vous pouvez ajouter un fichier utilisateur distinct pour contenir l'accès pour cette partie de votre système. Pour l'accès basé sur IP, il suffit d'ajouter des lignes comme Allow from 123.123.123.123 sous la ligne Allow from 127.

Enfin, des sites supplémentaires peuvent être créés en créant plus de ces sites Apache (voir par exemple here pour plus de détails). Il suffit d'adapter le port (8080 dans mon exemple) à celui que vous souhaitez héberger les sites supplémentaires.

Questions connexes