2016-03-30 32 views
0

現在,我有2個虛擬機從另一個訪客機器的流氓訪問域

首先運行api服務器的虛擬機。
第二個vm像客戶端一樣執行對api端點的請求。

API服務器名稱是http://api.dev
客戶端服務器名稱爲http://client.dev

下面是API服務器無業遊民文件:

Vagrant.configure(2) do |config| 
    config.vm.box = "lemp.dev" 
    config.vm.network "private_network", ip: "192.168.10.10" 
    config.vm.synced_folder "www", "/var/www/html" 
end 

下面是客戶端遊民文件:

Vagrant.configure(2) do |config| 
    config.vm.box = "lemp.dev" 
    config.vm.network "private_network", ip: "192.168.10.11" 
    config.vm.synced_folder "www", "/var/www/html" 

end 

這是我的主機上的主機文件:

192.168.10.11   client.dev 
192.168.10.10   api.dev 

我可以從我的主機訪問http://api.dev

問題是,我不能從我的客戶端訪問http://api.dev machine.When我運行curl api.dev我有404頁

我要的是能夠訪問到http://api.dev從另一個VM實例(第二VM) 。

+0

是否更新了client.dev虛擬機上的主機文件?不僅主機 –

+0

@FrédéricHenri我意識到這一點..如果我更新client.dev上的主機文件,我可以訪問該域..但我不知道是一個更好的方式來做到這一點? – slier

+0

你可以看看[vagrant hostmanager](https://github.com/devopsgroup-io/vagrant-hostmanager)插件,該插件可以管理你的主機hosts文件,也可以管理來賓的hosts文件。 –

回答

0

您需要更新客人(192.168.10.11192.168.10.10)上的hosts文件,並將其放在您的主機上,或者您可以使用IP而不必擔心這樣做。

+0

有沒有更好的方法來做到這一點?即時通訊知道,如果我添加192.168.10.10到client.dev/etc/hosts我可以訪問域..我只是想知道有更好的方法來做到這一點? – slier

+0

否... client.dev框無法知道您希望它將「api.dev」(本地)轉換爲IP。在不修改'hosts'文件的情況下,它會要求您最近的DNS(OS,ISP等)將FQDN轉換爲IP,但由於「api.dev」意味着沒有人可以翻譯它,因此沒有記錄。這就是爲什麼你必須在'hosts'文件中明確定義它的原因。 **或者只是使用IP **。 –

+0

或者FrédéricHenri在你的問題的評論中指出,你可以使用'vagrant-hostmanager'插件來嘗試自動化這個過程。根據我的經驗,它造成了比解決問題更多的問題,這就是爲什麼我不想推薦它。 –