Ich habe eine Vagrant VM mit Rails mit einer Beispiel-App installiert. Die VM ist so konfiguriert, dass sie den Port 3000 (des Rails Webrick Servers) an meinen Host 3000 Port weiterleitet.Rails 4.2 Server Port Forwarding auf Vagrant funktioniert nicht
config.vm.network "forwarded_port", guest: 3000, host: 3000
Alles ist konfiguriert, wie in vielen Beispielen gesehen.
Aber, wenn ich versuche, http://localhost:3000
nichts passiert zuzugreifen. Ich habe auch versucht, zu anderen zufälligen Häfen wie 8081, 25600 ohne Erfolg weiterzuleiten. Doing eine Curl-Anfrage erhält auch nichts (nur eine Verbindung zurückgesetzt durch die Peer-Nachricht), und eine Curl-Anfrage innerhalb VM funktioniert perfekt (wie erwartet).
Sowohl mein PC als auch meine VM läuft Ubuntu 12.04. Ich benutze Ruby 2.2.0 und Rails 4.2.0.
Ein wichtiger Punkt ist, dass Apache normal funktioniert. Ich habe den Port 80 an Port 8080 weitergeleitet und alles funktioniert. Es scheint, dass das Problem nur mit dem Rails-Server auftritt, selbst wenn ich andere Ports verwende (rails server -p 4000
zum Beispiel)
Ich werde es tun! Jeder Server sollte die 0.0.0.0 in einer VM verwenden? Ich wusste nichts darüber ... –
Nein, das ist nicht der sicherste Weg, es zu tun. 0.0.0.0 bedeutet nur, dass Sie auf eine beliebige Adresse hören. Die Änderung bedeutet, dass nur Anfragen von der VM und nicht von Ihrem Host-Computer beantwortet werden. Es ist gut für die Entwicklung, mach es nicht in der Produktion. –
Ich habe das gleiche Problem festgestellt. Welche Empfehlungen haben Sie für die Einrichtung der Produktionsumgebung? Gibt es bestimmte IP-Schienen, an die man sich binden sollte? – helsont