Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Serveurs (Apache, IIS,...)
Serveurs (Apache, IIS,...) Forum d'entraide sur les Serveurs : Apache, IIS, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/05/2007, 11h35   #1
Nouveau Membre du Club
 
Inscription : juillet 2002
Messages : 72
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 72
Points : 25
Points : 25
Par défaut Plusieurs sites sur serveur Apache & IIS

J'ai un serveur web comprenant IIS et Apache avec quelques sites sous IIS. Je dois ajouter un site sous Apache mais je ne vois pas trop comment m'y prendre.
A priori je dois rajouter une entrée pour ce nouveau site dans le DNS et ajouter un virtualhost dans le fichier de config Apache ? Est ce que cela suffit ?

Sinon deuxième question : pour accéder à mon site sous Apache je vais être obligé de spécifier le port dans l'URL ? Il y a-t-il possibilité de masquer ce port ?
korrigan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2007, 17h12   #2
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 306
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 306
Points : 8 590
Points : 8 590
Citation:
Envoyé par korrigan
J'ai un serveur web comprenant IIS et Apache avec quelques sites sous IIS. Je dois ajouter un site sous Apache mais je ne vois pas trop comment m'y prendre.
A priori je dois rajouter une entrée pour ce nouveau site dans le DNS et ajouter un virtualhost dans le fichier de config Apache ? Est ce que cela suffit ?
A priori oui. Dans tous les cas c'est nécessaire. Seuls les tests diront si c'est suffisant

Citation:
Envoyé par korrigan
Sinon deuxième question : pour accéder à mon site sous Apache je vais être obligé de spécifier le port dans l'URL ? Il y a-t-il possibilité de masquer ce port ?
Si le port d'entrée au site 80, le port n'apparaît pas dans l'URL ; si c'est un port autre que 80, il devra obligatoirement figuré dans l'URL. Par port d'entrée, j'entends le port TCP associé à l'adresse IP publique qui reçoit les demandes de connexion au site. Par exemple, si tu as un pare-feu devant Apache, c'est ce pare-feu qui porte l'adresse IP publique et le port d'écoute. Dans les URL, c'est donc le port du pare-feu qui apparaît. Si c'est 80, pas besoin de mettre :80 dans les URL car c'est le port par défaut pour HTTP. Rien ne t'oblige alors à avoir Apache qui écoute également sur le port 80. Tu peux le faire écouter sur le port 3456 si ça te fait plaisir. Le truc c'est que le pare-feu devra être capable de rediriger les requêtes entrant sur le port 80 vers le port 3456 d'Apache, et Apache devra être configuré avec la directive Port (au niveau du virtual host du site) ayant comme valeur le port d'écoute du pare-feu.
Exemple 1 : pare-feu en écoute sur le port 90, Apache en écoute sur le port 4567. Alors :
- Les URL sont en http://monsite:90/...
- le pare-feu doit rediriger le port entrant 90 sur le port 4567 d'Apache
- Apache doit avoir la directive Port 90 dans le virtual host de "monsite".

Exemple 2 : pare-feu en écoute sur le port 80, Apache en écoute sur le port 4567. Alors :
- Les URL sont en http://monsite/...
- le pare-feu doit rediriger le port entrant 80 sur le port 4567 d'Apache
- Apache doit avoir la directive Port 80 dans le virtual host de "monsite".

Par ailleurs, les virtual hosts te permettent d'avoir plusieurs sites utilisant le port 80. Ce n'est pas parce qu'un site utilise déjà le port 80 qu'il faut que tu utilises un autre port pour les autres virtual hosts. Le truc c'est de mettre la bonne valeur à la directive ServerName des virtual host. Exemple de configuration :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Listen 80
...
NameVirtualHost *:80
<VirtualHost *:80>
    ServerName www.site1.com
    Port 80
    DocumentRoot ...
</VirtualHost>

<VirtualHost *:80>
    ServerName www.site2.net
    Port 80
    DocumentRoot ...
</VirtualHost>
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 09h01   #3
Nouveau Membre du Club
 
Inscription : juillet 2002
Messages : 72
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 72
Points : 25
Points : 25
Bonjour et merci de ta réponse très complète.
J'arrive bien à accéder à mon site tournant sous Apache en specifiant dans l'URL le port 8080 (également spécifié dans le httpd.conf)

J'essaye maintenant de masquer le port dans l'URL en configurant mon parefeu mais cela ne marche pas car Apache ne veut pas se lancer si je le fais écouter sur le port 80 (sans doute du au conflit avec IIS)
D'ailleurs mais je ne comprends pas trop ton exemple n°2. Si Apache écoute sur le port 4567 pourquoi la directive Listen à indiquer dans le Httpd.conf est Listen 80 ?
korrigan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 17h29   #4
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 306
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 306
Points : 8 590
Points : 8 590
L'exemple de config que je donne tout à la fin, ce n'est pas l'exemple 2, attention. Pour l'exemple 2, tu as vu juste, il faut en effet une directive Listen 4567. Ce que je donne à la fin c'est un exemple de configuration de 2 virtual hosts utilisant le port 80. Il faut dériver cet extrait de code pour avoir 2 virtual hosts prévu pour le port 80 et Apache écoutant sur le port 4567 :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Listen 4567
...
NameVirtualHost *:4567
<VirtualHost *:4567>
    ServerName www.site1.com
    Port 80
    DocumentRoot ...
</VirtualHost>

<VirtualHost *:4567>
    ServerName www.site2.net
    Port 80
    DocumentRoot ...
</VirtualHost>
Port et ServerName correspondent toujours aux URL que vois le visiteur.

Tu dis :

Citation:
J'essaye maintenant de masquer le port dans l'URL en configurant mon parefeu mais cela ne marche pas car Apache ne veut pas se lancer si je le fais écouter sur le port 80
Ce n'est pas correct : relis ce que j'ai dit sur les ports d'entrée. Pour masquer le port dans l'URL il faut que le "truc" qui est contacté par les clients et qui répond au nom DNS www.monsite.com écoute sur le port 80. Ca peut être Apache ou ça peut être un firewall. Si c'est Apache, il faut évidemment qu'il écoute sur le port 80. Si c'est un firewall qui redirige ensuite sur Apache, Apache n'est pas obligé d'écouté sur le port 80. Ce n'est même généralement jamais le cas pour des raisons de sécurité système : tous les sites utilisant Apache ont un reverse proxy ou un firewall en entrée qui écoute sur le port 80 et qui redirige sur un serveur Apache écoutant sur un port > 1024.

Donc pour toi, 2 options :
- Soit tu peut mettre en place un firewall, un reverse proxy, un répartiteur de charge, etc. qui écoute sur le port 80 et qui peut rediriger vers Apache sur n'import quel port
- Soit tu ne peux pas et dans ce cas Apache écoute forcément sur le port 80 et est accédé directement.

Dans les 2 cas tu auras une config semblable à celle que je donne au dessus. Les seules choses qui changeront sont les directives Listen et NameVirtualHost ainsi que les *:port des <VirtualHost>.

Tu ne peux pas avoir IIS et Apache écoutant sur le même port (un port = un programme). C'est pour ça que tu dois avoir un "appareil" redirigeant le port 80 vers le port d'Apache et que les directives Port sont à la valeur 80.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 17h55   #5
Nouveau Membre du Club
 
Inscription : juillet 2002
Messages : 72
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 72
Points : 25
Points : 25
OK donc j'ai configuré mon parefeu de manière à ce qu'il écoute sur le port 80 et qu'il redirige sur le port 8080 d'Apache et j'ai configuré Apache de la manière suivante :

Code :
1
2
3
4
5
6
7
8
9
10
Listen 8080

NameVirtualHost 192.168.200.xxx:8080

<VirtualHost 192.168.200.xxx:8080>
    DocumentRoot e:\wamp\www\monsite
    Port 80
    ServerName monsite.fr
</VirtualHost>
...mais je n'arrive pas à lancer Apache
korrigan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 18h29   #6
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 306
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 306
Points : 8 590
Points : 8 590
NameVirtualHost 192.168.200.xxx:8080 : pourquoi pas *:8080 ? C'est plus simple et le jour ou tu changes d'IP, y a pas de pb. C'est surtout le Listen qui est important pour l'IP, si ta machine a plusieurs interfaces réseau.

Pour le démarrage d'Apache, comme d'hab, faut aller voir dans les logs ce qui ne va pas (généralement, il est assez explicite). T'as pas déjà un truc qui écoute sur le port 8080 ? Fais un telnet localhost 8080 ou telnet <ip> 8080 pour voir si ça accroche.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 18h38   #7
Nouveau Membre du Club
 
Inscription : juillet 2002
Messages : 72
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 72
Points : 25
Points : 25
Le problème semble venir de la directive Port 80 dans le virtualhost si je l'enlève Apache démarre bien sinon il ne demarre pas et il n'y a rien dans les fichiers de logs comme trace d'erreur
korrigan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 10h20   #8
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 306
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 306
Points : 8 590
Points : 8 590


J'ai l'impression que c'est parce qu'il manque une directive Listen. Port ne sert pas à donner le port d'écoute, c'est Listen qui fait ça. Il y a cependant une exception à cette règle : c'est justement quand il n'y a pas de directive Listen. Donc vérifie bien qu'il y a un Listen 8080 qq part dans le fichier en dehors des virtual hosts. Voir http://httpd.apache.org/docs/1.3/mod/core.html#port.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h53.


 
 
 
 
Partenaires

Hébergement Web