1 votes

Exécuter Tomcat sur un alias Apache ou faire correspondre les numéros de port aux noms d'hôtes

J'ai installé WAMP avec Apache sur le port 80 et Tomcat sur le port 8080. S localhost/ et des projets java à localhost:8080/ Puis-je installer ou mapper Tomcat sur un meilleur adresse comme localhost/java/ ou mieux encore, un pseudonyme comme javahost 代わりに localhost J'ai ajouté une ligne au fichier HOSTS

127.0.0.1:8080       javahost

Mais ça ne marche pas. Et je ne peux pas faire de ping vers javahost. Je suppose que ce n'est pas censé fonctionner de cette façon.

Y a-t-il une issue ?

WAMPSERVER 2 avec APACHE 2.2.11

TOMCAT 6.0.29

Windows XP PRO SP3

Mise à jour :

Merci à @bindbn

J'ai changé le fichier hosts en

127.0.0.1 javahost

J'ai activé le module proxy dans Apache Puis j'ai ajouté ceci à la fin du fichier httpd.conf

<VirtualHost javahost>
ProxyPreserveHost On

ProxyPass         /  http://localhost:8080
ProxyPassReverse  /  http://localhost:8080

</VirtualHost> 

から Utilisation conjointe de Virtualhost et de mod_proxy

Après quoi javahost charge également le site web php hébergé sur le port 80 au lieu du site localhost:8080.

Mise à jour Trouvé ceci sur les interwebs http:// confluence.atlassian.com/display/CONF30/Using+Apache+with+mod_proxy

# Put this in the main section of your configuration (or desired virtual host, if using Apache virtual hosts)
ProxyRequests Off
ProxyPreserveHost On

#<Proxy *>// changed to below.
<Proxy javahost:80>
    Order deny,allow
    Allow from all
</Proxy>

ProxyPass /confluence http://localhost:8080/confluence 
ProxyPassReverse /confluence http://localhost:8080/confluence
<Location /confluence>
    Order allow,deny
    Allow from all
</Location>

En changeant confluence pour java (et en changeant localhost:8080/confluence pour localhost:8080), j'obtiens la réponse de @lladnar, qui fonctionne bien pour rediriger localhost/java et javahost/java vers localhost:8080, mais cela ne peut-il pas être utilisé pour rediriger UNIQUEMENT javahost vers localhost:8080 et garder localhost pour lire sur le port 80 ? J'ai aussi changé les lignes en,

<Proxy javahost:80>
    Order deny,allow
    Allow from all
</Proxy>

ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/

Maintenant javahost redirige vers localhost:8080 mais localhost redirige aussi vers localhost:8080 et donc je ne peux pas accéder au port localhost:80 qui abrite mon site web php.

Où est-ce que je me trompe ? Avez-vous des idées ?

Mon but est de rediriger javahost (ou une autre IP) vers localhost:8080, en gardant localhost:80 accessible depuis localhost et 127.0.0.1 et l'IP intranet de mon ordinateur.

Mis à jour avec la réponse Ça a marché. J'ai ajouté ceci à la fin de httpd.conf. Le module proxy et le module proxy http sont activés. Ma station de travail avait une seule IP LAN (192.168.1.4). J'ai ajouté une autre IP (192.168.1.5) et j'ai utilisé cette IP à la place du nom javahost. Maintenant 192.68.1.5 ouvre mon site web Tomcat et 192.168.1.4 ouvre mon site web PHP.

<VirtualHost 192.168.1.5>
ProxyPreserveHost On

ProxyPass         /  http://localhost:8080/
ProxyPassReverse  /  http://localhost:8080/

</VirtualHost> 

Merci à @Caleb pour l'idée des IPs multiples. Merci à @lladnar et @bindbn pour le code Proxy ! (J'aimerais pouvoir partager le crédit de réponse et comme je n'ai pas de rep(rep 6), je ne peux pas donner de rep)

Problèmes avec la configuration actuelle Actuellement, les personnes présentes sur l'intranet utilisent http:// workstationname/ pour accéder au site intranet PHP. Ils devront maintenant utiliser les ips pour le site Web JAVA et PHP. Existe-t-il un moyen de lier un nom d'hôte spécifique à une adresse IP spécifique ?

0voto

bindbn Points 5093

Edit(supprimer :8080)

127.0.0.1       javahost

Ajouter dans la conf apache virtualhost javahost

ProxyPass         /  http://localhost:8080
ProxyPassReverse  /  http://localhost:8080

0 votes

J'ai ajouté cela à la fin de httpd.conf en partant de virtualhost javahost. mon serveur ne démarre pas maintenant.

0 votes

J'ai activé le module proxy et j'ai mis à jour la question

0voto

Caleb Points 11393

Votre fichier hosts sert à rechercher des adresses, et non à forcer le routage vers un port spécifique.

Vous n'avez pas précisé votre plate-forme ici, il s'agit donc de solutions générales possibles :

  1. Ajoutez une deuxième adresse IP à votre ordinateur et liez apache à l'une et tomcat à l'autre. Vous pourriez alors utiliser hosts pour spécifier lequel est lequel.
  2. Configurez un Alias dans apache pour transférer vers l'autre URL.
  3. Configurez vos hôtes virtuels dans apache de façon à ce qu'il reconnaisse les différents noms (que vous définissez dans votre fichier hosts) et qu'il fasse suivre ou transmette les requêtes à tomcat si elles sont destinées à l'autre hôte.

0 votes

WinXP Pro SP3 est mon système d'exploitation

0 votes

Je suggère la solution n° 1, qui est la plus robuste et la plus facile à mettre en œuvre. Ajoutez une deuxième adresse IP à votre configuration réseau, puis modifiez les configurations d'apache et de tomcat pour qu'ils se lient chacun à une adresse spécifique seulement au lieu de tous les/0.0.0.0. Toutes les solutions de proxy/réécriture/transfert nécessiteront que les configurations d'apache soient correctes et que le démon fonctionne pour que vous puissiez atteindre votre serveur tomcat.

0 votes

+1 si j'avais le représentant @Caleb Actuellement mon PC a 2 ips (3 en fait), 127.0.0.1 , 192.168.1.4 (et une IP dynamique assignée par le FAI). Le problème est que le serveur php est accessible en utilisant la deuxième adresse IP du réseau qui gère le site Web intranet.

0voto

lladnar Points 292

Dans votre question actuelle :

Changement <VirtualHost javahost> a <VirtualHost *:80> pour qu'il n'écoute que le port 80 sur toutes les interfaces. Vous pouvez remplacer l'astérisque par localhost si vous voulez que le site ne soit accessible que depuis la machine locale.

Ensuite, changez le proxypass et le proxypassreverse en :

ProxyPass         /java  http://localhost:8080
ProxyPassReverse  /java  http://localhost:8080

Entonces http://localhost/java devrait être automatiquement transmis à Tomcat lorsque vous y accédez dans votre navigateur.

0 votes

+1 Merci. J'ai trouvé ceci sur l'interwebs qui fait la même chose, confluence.atlassian.com/display/CONF30/ Est-il possible d'utiliser javahost ?

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X