2016-08-28 13 views
0

私はVagrantを使用してUbuntuボックスを実行しています。これは特に:ubuntu/trusty64です。WebアプリのURLは、Vagrantでnpmを起動したあと

私のWindowsホストマシンでは、npm startを実行してから、localhost:8080webpack-dev-serverを使用しています)にアクセスしてWebアプリケーションを起動します。私はぼかしの中でそれを始めると同様のことをしたい。

現在、私は同期フォルダを持っており、私のWebアプリケーションはそこに置かれています。私はnpm startのUbuntu Vagrantボックスの中で私のアプリを起動することができます。しかし、私はそれを見る方法を知らない。 Vagrant Ubuntuマシンは、Vagrantfile(192.168.24.100)の内部に定義されているプラ​​イベートネットワーク上に設定されています。私は、そのIPアドレスを介してVagrantマシンに設定されているApacheサーバーにアクセスできます。

192.168.24.100:8080と入力してみました。ただし、「接続できません」というメッセージが表示されます。ブラウザでWebアプリケーションを表示するにはどうすればよいですか?どんな助けもありがとう!

EDIT:私はこのようなVagrantfileforwarded_portを設定しようとした:

config.vm.network "forwarded_port", guest: 8080, host: 8080 

しかし、それはまだ動作しません。


マイVagrantfile

# -*- mode: ruby -*- 
# vi: set ft=ruby : 

# All Vagrant configuration is done below. The "2" in Vagrant.configure 
# configures the configuration version (we support older styles for 
# backwards compatibility). Please don't change it unless you know what 
# you're doing. 
Vagrant.configure("2") do |config| 
    # The most common configuration options are documented and commented below. 
    # For a complete reference, please see the online documentation at 
    # https://docs.vagrantup.com. 

    # Every Vagrant development environment requires a box. You can search for 
    # boxes at https://atlas.hashicorp.com/search. 
    config.vm.box = "ubuntu/trusty64" 

    # Disable automatic box update checking. If you disable this, then 
    # boxes will only be checked for updates when the user runs 
    # `vagrant box outdated`. This is not recommended. 
    # config.vm.box_check_update = false 

    # Create a forwarded port mapping which allows access to a specific port 
    # within the machine from a port on the host machine. In the example below, 
    # accessing "localhost:8080" will access port 80 on the guest machine. 
    config.vm.network "forwarded_port", guest: 8080, host: 8080 

    # Create a private network, which allows host-only access to the machine 
    # using a specific IP. 
    config.vm.network "private_network", ip: "192.168.24.100" 

    # Create a public network, which generally matched to bridged network. 
    # Bridged networks make the machine appear as another physical device on 
    # your network. 
    # config.vm.network "public_network" 

    # Share an additional folder to the guest VM. The first argument is 
    # the path on the host to the actual folder. The second argument is 
    # the path on the guest to mount the folder. And the optional third 
    # argument is a set of non-required options. 
    config.vm.synced_folder "web/", "/var/www/" 

    # Provider-specific configuration so you can fine-tune various 
    # backing providers for Vagrant. These expose provider-specific options. 
    # Example for VirtualBox: 
    # 
    # config.vm.provider "virtualbox" do |vb| 
    # # Display the VirtualBox GUI when booting the machine 
    # vb.gui = true 
    # 
    # # Customize the amount of memory on the VM: 
    # vb.memory = "1024" 
    # end 
    # 
    # View the documentation for the provider you are using for more 
    # information on available options. 

    # Define a Vagrant Push strategy for pushing to Atlas. Other push strategies 
    # such as FTP and Heroku are also available. See the documentation at 
    # https://docs.vagrantup.com/v2/push/atlas.html for more information. 
    # config.push.define "atlas" do |push| 
    # push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME" 
    # end 

    # Enable provisioning with a shell script. Additional provisioners such as 
    # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the 
    # documentation for more information about their specific syntax and use. 
    # config.vm.provision "shell", inline: <<-SHELL 
    # apt-get update 
    # apt-get install -y apache2 
    # SHELL 
end 
+0

あなたのVagrantfileを教えてください。少なくともプライベートネットワーキングを設定しているところです。 – Brad

+0

オペレーションに追加されました。 –

答えて

1

あなたは、そのIPアドレスによってあなたのベイグラントボックスに接続するための転送ポートを必要としません。転送されたポートは、ホストのIPアドレスからVMにアクセスできるようにのみなっています。少なくとも私のワークフローでは、ほとんどこれをしません。複数のVagrant VMが稼働している場合は、ポートの競合が発生します。私はVagrantボックスに直接アクセスし、vagrant-hostsプラグインを使用してhostsファイルのエントリを更新し、それらのボックスに名前でアクセスできるようにすることを好みます。

いずれにしても、ポート80のWebサーバーは問題ないので、ネットワーク側のものが機能しています。 Node.jsアプリケーションが実際には動作していないか、ポート8080でリッスンしていないか、正しいインタフェース(またはすべてのインタフェース)にバインドされていないか、ファイアウォールが動作しています。

+0

wepアプリケーションを起動すると、http:// localhost:8080/webpack-dev-server'が実行されています。私は 'localhost'をブラウザの設定済みIPに置き換えましたが、「Unable to connect」と表示されます。私はそれがアプリケーションを訪問しようとする前に正常に構築するのを待つ。私はファイアウォールを完全に確実にして、まだ運がないようにしました。私はポートを転送しなければならないと思いますか?私はマシンを起動したときに気づいた。「デフォルト:22(ゲスト)=> 2222(ホスト)(アダプター1)」と言う。だから私は8080と同じようにする必要がありますか? –

+1

@ m.oあなたのアプリケーションコードは表示されませんでしたが、メッセージが正しい(そしてしばしばそうでない)場合は、VMのlocalhostにバインドされています。 '127.0.0.1 'ではなく' :: 'または' 0.0.0.0'にバインドするためにリスンコードを変更する必要があります。あなたの '.listen()'はあなたのアプリでどのように見えますか? – Brad

+0

ありがとう! 'webpack-dev-server/bin/webpack-dev-server.js'のリスンアドレスを' 0.0.0.0'に変更しました。これは私が今8080番ポートに行くときに動作します。 –

関連する問題