Je rencontre un petit problème à la fin du guide de mise en route pourvagrant
. Je travaille sur une basebox CentOS sur laquelle Apache2 est en cours d'exécution (provisionnement via Puppet). J'ai configuré la redirection de port pour les demandes Web en utilisant la ligne suivante dans Vagrantfile
:
config.vm.forward_port "web", 80, 4567
Mais quand je fais des demandes à ce port, elles échouent. L'erreur signalée par Safari est "Safari ne peut pas ouvrir la page" http: // localhost: 4567 / "car le serveur a interrompu la connexion de manière inattendue."
J'ai fait un vagrant reload
et j'ai vu "[par défaut] - web: 80 => 4567 (adaptateur 1)" dans le défilement, alors par où dois-je commencer à résoudre ce problème? Merci.
curl -v 'http://localhost:4567/'
dit-on? Parfois, Safari est un peu trop gentil pour cacher les messages d'erreur.curl 'http://localhost:80'
la machine virtuelle elle-même fonctionne-t-elle? Sinon, le problème n'est pas la redirection de port.curl
depuis la VM fonctionne.curl
de l'hôte me donne(52) Empty reply from server
.Réponses:
Je vais en faire une réponse réelle au lieu de simplement plus de commentaires.
Première chose: essayez
curl 'http://localhost:80'
depuis la VM. Si cela ne fonctionne pas, ce n'est certainement pas la redirection de port.Suivant: essayez
curl -v 'http://localhost:4567/'
depuis votre machine hôte. Curl peut vous donner un meilleur message d'erreur que Safari.Je vérifierais qu'aucun pare-feu n'est configuré pour restreindre l'accès au port 80. La VM Vagrant par défaut (Ubuntu) n'est pas livrée avec un pare-feu configuré, mais vous avez dit que vous utilisiez autre chose, donc cela pourrait en valoir la peine vérifier.
Si ce n'est pas le cas, essayez de créer autre chose qu'Apache répertorié sur le port 80. Python est livré avec un simple serveur HTTP que vous pouvez utiliser - allez dans le dossier avec
index.html
et exécutezsudo python -m SimpleHTTPServer 80
, puis essayez de frapper cela avec curl dans les 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 vous aider si c'est le cas (j'utilise nginx).la source
iptables
. J'ai vérifié pour m'assurer que la politique par défaut étaitACCEPT
pour les connexions entrantes, mais je n'ai pas fait attention à la chaîne de règles personnalisées de RedHat, qui a uneREJECT
règle fourre-tout comme dernière règle de la chaîne. tl; dr J'avais un pare-feu sur le chemin et je n'ai tout simplement pas remarqué.service iptables stop
tant que root pour éliminer rapidement un problème de pare-feu invité. Réactivez-le plus tard si nécessaire.iptables
restreignait presque tout. J'ai suivi ce guide centos iptable (solution dans la section 3 Ecrire un jeu de règles simple ) et cela a fonctionné comme un charme :)Vagrantfile
et exécuté la commandevagrant reload
Je voulais ajouter une note supplémentaire selon laquelle cela est souvent causé par le serveur dans la machine virtuelle car il se lie à
127.0.0.1
, ce qui est un bouclage. Vous voudrez vous assurer que le serveur est lié à0.0.0.0
afin 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 Ruby utilisent
127.0.0.1
par défaut par défaut, c'est donc quelque chose à surveiller.En dehors de cela, ce que Steve a dit est vrai: assurez-vous que cela fonctionne depuis la machine virtuelle et essayez d'autres serveurs simples pour essayer de déterminer s'il s'agit d'un problème de configuration.
la source
J'ai eu le même problème sur CentOS 6.3 w / NGINX et j'ai trouvé la réponse dans les iptables sur la boîte vagrant.
De bash sur la boîte vagabonde, suivez ces étapes:
Première liste des règles iptables actuelles
Puis vider les règles actuelles:
Autoriser les connexions SSH sur le port TCP 22
Définir les politiques par défaut pour les chaînes INPUT, FORWARD et OUTPUT
Définir l'accès pour localhost
Accepter les paquets appartenant aux connexions établies et associées
Enregistrer les paramètres
Liste des règles modifiées
Curl localhost: [port #] ou appuyez dessus dans votre navigateur depuis l'extérieur de vagrant
Plus d'informations sur les configurations iptables CentOS trouvées ici:
http://wiki.centos.org/HowTos/Network/IPTables
Bonne chance.
la source
service iptables stop
iptables -F
seul l'a fait pour moiUne meilleure solution pour moi est de désactiver le pare-feu
la source
Je veux aussi ajouter une autre note comme Mitchell. si mon cas je le transfère au 6789 de 80
Et j'ai
Ensuite, j'ai utilisé l'adresse IP à la place, il a reçu le bon message html.
la source