Question

Je rencontre un petit problème à la fin du Guide de démarrage pour vagrant. Je travaille sur une boîte de base CENTOS qui a une course APACHE2 (provisioning via Puppet). J'ai configuré le transfert de port pour les demandes Web en utilisant la ligne suivante dans Vagrantfile:

 config.vm.forward_port "web", 80, 4567

Mais lorsque je fais des demandes à ce port, ils échouent. L'erreur rapportée par Safari est «Safari ne peut pas ouvrir la page»http: // localhost: 4567 /"Parce que le serveur a supprimé de façon inattendue la connexion."

j'ai fait un vagrant reload et a vu [par défaut] - Web: 80 => 4567 (adaptateur 1)" Dans le parchemin, alors où dois-je commencer à dépanner cela? Merci.

Était-ce utile?

La solution

J'en ferai une réponse réelle au lieu de plus de commentaires.

Première chose: essayez curl 'http://localhost:80' de l'intérieur de la machine virtuelle. Si cela ne fonctionne pas, ce n'est certainement pas le transfert de port.

Suivant: essayez curl -v 'http://localhost:4567/' de votre machine hôte. Curl pourrait vous donner un meilleur message d'erreur que Safari.

Je vérifierais qu'il n'y a pas de pare-feu d'installation restreignant l'accès au port 80. Le VM Vagrant par défaut (Ubuntu) ne vient pas avec un pare-feu configuré, mais vous avez dit que vous utilisez autre chose, donc cela peut en valoir la peine vérifier.

Si ce n'est pas ça, essayez de fabriquer autre chose qu'Apache répertoriée sur le port 80. Python expédie avec un serveur HTTP simple que vous pouvez utiliser - accédez au dossier avec index.html et courir sudo python -m SimpleHTTPServer 80, puis essayez de frapper cela avec Curl des deux cases. Si cela fonctionne, c'est probablement un problème de configuration Apache. Je n'ai pas assez d'expérience avec Apache pour aider si c'est le cas (j'utilise nginx).

Autres conseils

Je voulais ajouter une note supplémentaire que souvent cela est causé par le serveur dans la machine virtuelle car elle se lie à 127.0.0.1, qui est en boucle. Vous voudrez vous assurer que le serveur est lié à 0.0.0.0 Pour que toutes les interfaces puissent y accéder.

Certains serveurs d'applications intégrés tels que les serveurs de développement de Django et certains serveurs rubis par défaut 127.0.0.1 Par défaut, c'est donc quelque chose à surveiller.

En dehors de cela, ce que Steve a dit est vrai: assurez-vous qu'il fonctionne à partir de la machine virtuelle et essayez d'autres serveurs simples pour essayer de déterminer s'il s'agit d'un problème de configuration.

J'ai eu le même problème sur CentOS 6.3 avec Nginx et j'ai trouvé la réponse dans les iptables sur la boîte vagabond.

De Bash sur la boîte vagabond, suivez ces étapes:

Première liste des règles iptables actuelles

iptables -L -v

Puis rincez les règles actuelles:

iptables -F

Autoriser les connexions SSH sur le port TCP 22

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Définir les stratégies par défaut pour les chaînes d'entrée, de transfert et de sortie

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

Définir l'accès pour LocalHost

iptables -A INPUT -i lo -j ACCEPT

Accepter les paquets appartenant à des connexions établies et connexes

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Enregistrer les paramètres

/sbin/service iptables save

Énumérer les règles modifiées

iptables -L -v

Curl localhost: [port #] ou frappez-le dans votre navigateur de l'extérieur Vagrant

Plus d'informations sur les configurations iptables centos trouvées ici:

http://wiki.centos.org/howtos/network/IpTables

Bonne chance.

Une meilleure solution pour moi est de désactiver le pare-feu

service iptables stop
chkconfig iptables off

Je veux également ajouter une autre note comme Mitchell. Si mon cas je le transmet à 6789 à partir de 80

$ curl -v http://localhost:6789

Et j'ai

<HTML>
<HEAD><TITLE>Redirection</TITLE></HEAD>
<BODY><H1>Redirect</H1></BODY>

Ensuite, j'ai utilisé l'adresse IP à la place, il a obtenu le message HTML correct.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top