2010-12-10 29 views
0

J'ai le serveur A qui fait une demande au serveur B. J'ai essayé à la fois file_get_contents et curl; tous les deux refusent la connexion. J'essaie de me connecter à une application tomcat sur le serveur B.Pourquoi Tomcat refuse-t-il une connexion à mon autre serveur?

La connexion fait fonctionne si je fais une demande à google.com, ou à une autre application sur le serveur B qui n'est pas dans l'application Tomcat. Cela me porte à croire qu'il y a quelque chose de spécifique à mon installation de tomcat qui rejette la requête du serveur A. Des pensées? Est-ce que je peux fournir plus d'informations pour aider le problème?

Existe-t-il un moyen de mettre en liste blanche mon serveur A dans tomcat afin que la connexion soit acceptée? Ou en dernier recours, comment accepterais-je toutes les demandes?

Modifier: Je voulais également ajouter que la connexion au serveur B fonctionne très bien lorsque je me connecte depuis ma machine de développement locale.

+0

Quel est exactement le statut/message d'erreur? Ne nécessite-t-il pas simplement un login ou une session ou un UA valide? – BalusC

+0

file_get_content indique "échec de l'ouverture du flux: connexion refusée". Comment pourrais-je lui donner une session? – Steve

+0

Est-ce que Tomcat fonctionne et fonctionne sur Internet? C'est à dire. vous êtes en mesure d'y accéder par un webbrowser? Selon votre modification, cela ressemble beaucoup à l'exécution de Tomcat sur votre machine locale et vous utilisez 'http: // localhost' pour le connecter à partir de l'hôte PHP. Es-tu sûr que tu n'as pas fait cette erreur? – BalusC

Répondre

1

Votre test du serveur A à google.com ou d'autres applications sur le serveur B utilisent probablement le port 80. De nombreux pare-feu ne permettent pas de trafic sur les ports étranges comme 8089.

Si vous ne pouvez pas changer la règle de pare-feu Pour permettre l'accès au serveurB: 8089, je pense que la bonne façon de le faire est de transmettre la requête par le biais du serveur web du serveur B. Ainsi, le serveur A demanderait "serverB: 80/yourproxyurl" et le serveur Web sur le serveur B communiquerait avec le serveur tomcat sur localhost, et afficherait la réponse.

C'est ce que Tomcat Connectors sont pour, si je comprends bien.

+0

OUI! Le numéro de port était le problème! Je l'ai changé en 591 (un autre port HTTP officiel) et ça marche parfaitement! Je vous remercie! – Steve