Puis-je exécuter deux serveurs Web sur le même ordinateur?
Je viens de découvrir que je peux écrire un simple serveur web à l'aide de Python. J'ai déjà un serveur web Apache je voudrais essayer de le Python serveur web sur cette machine. Mais j'ai peur que je peux obtenir une sorte de conflit si je l'ai essayer. Je veux dire, comment deux serveur web de "décider" qui doit au serveur une demande d'un client?
source d'informationauteur Roman
Vous devez vous connecter pour publier un commentaire.
Faire écouter les différents ports et vous serez amende.
Le port par défaut est 80. Lorsque vous ouvrez une url dans le navigateur sans spécifier un port 80 est utilisé par défaut.
Vous pouvez configurer votre serveur web pour écouter un autre port, mais vous aurez aussi besoin de le préciser explicitement dans l'url:
Lors du choix d'un port de faire attention à ce que ce numéro de port n'est pas encore utilisé par n'importe quel logiciel que vous avez installé et en cours d'exécution sur votre boîte. Sinon, comme vous l'avez deviné, il y aura un conflit.
P. S. Juste un il ya quelques jours à faire une réinstallation j'ai eu IIS ne peut pas démarrer (apparemment sans raison). S'est avéré que la nouvelle version de Skype occupé ce port par défaut! A dû retirer son paramètre "Utiliser les ports 80 et 443 comme solution de rechange pour les connexions entrantes".
Un serveur web qui est lié à un port spécifique. Normalement, c'est le port 80. Si le port n'est pas spécifié, c'est le port qu'un navigateur tentative de frappe.
Vous pouvez obtenir votre serveur auxiliaire pour fonctionner sur un autre port ( 8080 ou 8081 semble être populaire alts pour les serveurs web, mais le choix est le vôtre ).
Ce vais arrêter les conflits de se produire. Tout va pour le port 80 hits votre ancien serveur. Tout va 8080 ( ou n'importe quel port vous décidez de lancer votre serveur ) va frapper votre simple python serveur.
Sur votre serveur, utilisez une URL de la forme :-
http://localhost:8080/
Si vous souhaitez exécuter des serveurs distincts pour tester le logiciel de serveur de voir les autres réponses, mais...
Il ressemble (parce que vous êtes un développeur, pas un sysadmin droit?) vous vraiment voulez juste de lancer Python et PHP les sites sur le même ordinateur. Donc, pardonnez-moi si je suis en train de lire votre question, mais cette configuration me permet d'utiliser les deux types de sites sur le même ordinateur avec le même port (port 80) dans un serveur Apache.
Je fais de nouvelles entrées dans mon fichier /etc/hosts (ou C:\Windows\System32\drivers\etc\hosts sur Windows) et de les signaler à l'adresse 127.0.0.1:
Puis dans Apache-je ajouter des hôtes virtuels pour chaque site:
Donc, le PHP des sites dans le
DocumentRoot
comme ils le font toujours. Et le Python des sites dans WSGI. Et ils s'exécutent dans Apache. Ensuite, pour tester, j'ai juste ajouter ".locaux" quel que soit le navigateur que j'utilise pour travailler sur ma copie locale.Vous ne pouvez pas ouvrir deux serveurs web dans le même port (qui par défaut est de 80), si vous avez le désir de faire deux ou plusieurs serveurs web, vous devez utiliser des ports différents.
Si vous utilisez un serveur DNS, vous pouvez facilement configurer votre serveur web pour répondre avec les différents sites web des demandes différentes, qui pourrait être utile si vous avez besoin d'avoir les différents sites web pour les sous-domaines ou des domaines différents.
Les serveurs aient leur mot à dire dans qui fournit des services à une demande de connexion (cette tâche est encore au niveau du système d'exploitation). En outre, sans les options de socket, socket doit être lié à une combinaison unique de l'interface, l'adresse internet et le port.
Je vous suggère de dédier un serveur pour servir https (port 443) des demandes.
De cette façon, vous pouvez éviter le conflit de port d'autres ont mentionné tout en ne nécessitant pas les utilisateurs à taper quelque chose d'étrange dans leur navigateur (à l'arbitraire des numéros de port). Vous pouvez même avoir chaque serveur de rediriger le trafic vers l'autre (par exemple, le serveur http reçoit une requête http pour un nom d'hôte, il sait que le serveur https poignées de sorte qu'il peut rediriger la demande vers https avec le même nom d'hôte, permettant ainsi le transfert de la demande vers le serveur approprié).
Server Un:
Serveur B: