Domanda

Mi sono imbattuto in un piccolo problema alla fine del Guida introduttiva per vagrant.Sto lavorando su un CentOS basebox che ha Apache2 in esecuzione (provisioning tramite Puppet).Ho impostato il port forwarding per le richieste Web utilizzando la seguente riga in Vagrantfile:

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

Ma quando faccio richieste a quel porto, falliscono.L'errore segnalato da Safari è “Safari non può aprire la pagina"http://localhost:4567/"perché il server ha interrotto inaspettatamente la connessione.'

Ho fatto un vagrant reload e ha visto " [default] web web:80 = > 4567 (adattatore 1) " nel rotolo, quindi dove dovrei iniziare a risolvere questo problema?Grazie.

È stato utile?

Soluzione

Lo farò una risposta effettiva invece di solo più commenti.

Prima cosa: prova curl 'http://localhost:80' dall'interno della VM.Se ciò non funziona, allora non è sicuramente il port forwarding.

Avanti: Prova curl -v 'http://localhost:4567/' dal tuo computer host.Curl potrebbe darti un messaggio di errore migliore del safari.

Verificherei che non ci siano firewall impostare l'impostazione dell'accesso all'accesso alla porta 80. La VM vagaburia predefinita (Ubuntu) non viene fornita con un firewall impostato, ma hai detto che stai usando qualcos'altro, quindi potrebbevale la pena per controllare.

Se non è, prova a creare qualcosa di diverso dall'apache elencato sulla porta 80. Python Ships con un semplice server HTTP è possibile utilizzare - Vai alla cartella con index.html ed eseguire sudo python -m SimpleHTTPServer 80, quindi prova a colpire quello con ricciolo da entrambe le caselle.Se funziona, allora è probabilmente un problema di configurazione Apache.Non ho abbastanza esperienza con Apache per aiutare se questo è il caso (uso nginx).

Altri suggerimenti

Volevo aggiungere una nota aggiuntiva che spesso questo è causato dal server all'interno della VM perché si lega a 127.0.0.1, che è loopback.Dovrai assicurarti che il server sia vincolato a 0.0.0.0 in modo che tutte le interfacce possano accedervi.

Alcuni server di app incorporati come i server di sviluppo di Django e alcuni server Ruby 127.0.0.1 per impostazione predefinita, quindi questo è qualcosa a cui prestare attenzione.

A parte questo, quello che ha detto Steve è vero:Assicurati che funzioni dall'interno della VM e prova alcuni altri server semplici per cercare di capire se si tratta di un problema di configurazione.

Ho avuto lo stesso problema su Centos 6.3 W / Nginx e ho trovato la risposta per essere negli Iptables sulla scatola vagabonda.

Da Bash sulla scatola vagabonda, attenersi alla seguente procedura:

Primo elenco Regole corrente Iptable

iptables -L -v
.

Allora regole correnti a filo:

iptables -F
.

Consenti connessioni SSH sulla porta TCP 22

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

Impostare le politiche predefinite per le catene di input, avanti e di uscita

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

Imposta accesso per localhost

iptables -A INPUT -i lo -j ACCEPT
.

Accetta pacchetti appartenenti a connessioni stabilite e correlate

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

Salva impostazioni

/sbin/service iptables save
.

Elenco regole modificate

iptables -L -v
.

Curl localhost: [Port #] o colpiscilo nel tuo browser da VAGRENT ASCESSORI

Maggiori informazioni su Centos Iptable Configs trovato qui:

http://wiki.centos.org/Howtos/network/itTables

Buona fortuna.

Una soluzione migliore per me sta disabilitando il firewall

service iptables stop
chkconfig iptables off
.

Voglio aggiungere un'altra nota come Mitchell.Se il mio caso lo terrò a 6789 da 80

$ curl -v http://localhost:6789
.

e ho ottenuto

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

Quindi, ho utilizzato invece l'indirizzo IP, ha ottenuto il messaggio HTML corretto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top