2017-02-23 88 views
1

之間的連接我有簡單的無業遊民多機配置:流浪多機 - 機

Vagrant.configure(2) do |config| 
    config.vm.box = "bento/ubuntu-16.04" 
    config.vm.provision :shell, path: "vagrant/ubuntu-16.04/provision.sh" 
    config.vm.synced_folder "ed", "/var/www/html" 
    config.vm.provider "virtualbox" do |v| 
    v.memory = 1024 
    v.cpus = 2 
    end 
    config.vm.define "node1", primary: true do |node| 
    node.vm.hostname = 'node1' 
    node.vm.network :private_network, ip: "192.168.56.101" 
    node.vm.network :forwarded_port, guest: 22, host: 10122, id: "ssh" 
    node.vm.provision :hosts, :sync_hosts => true 
    end 
    config.vm.define "node2" do |node| 
    node.vm.hostname = "node2" 
    node.vm.network :private_network, ip: "192.168.56.102" 
    node.vm.network :forwarded_port, guest: 22, host: 10123, id: "ssh" 
    node.vm.provision :hosts, :sync_hosts => true 
    end 
end 

node1我有PHP和node2我有elasticsearch。
當我運行curl localhost:9200[email protected]它的工作原理,
但當我嘗試從[email protected]運行curl 192.168.56.102:9200它不會工作,我得到錯誤:

curl: (7) Failed to connect to 192.168.56.102 port 9200: Connection refused 
+0

是在192.168.56.102的防火牆中打開的端口9200? – NangSaigon

+0

@NangSaigon我怎麼檢查它? –

+0

@NangSaigon我跑了'netstat -anp | grep LISTEN | grep 9200'並收到'tcp6 0 0 127.0.0.1:9200 ::: * LISTEN -' 'tcp6 0 0 :: 1:9200 ::: * LISTEN -' –

回答

2

基於您的評論,elasticsearch監聽本地主機。所以,它只能從本地訪問。看你的輸出:

netstat -anp | grep LISTEN | grep 9200 

tcp6 0 0 127.0.0.1:9200 :::* LISTEN - tcp6 0 0 ::1:9200 :::* LISTEN 

你必須綁定elasticsearch端口到你的IP地址才能從外部訪問。

打開您的elasticsearch.yml並將IP地址添加到network.host選項。

network.host: "192.168.56.102" 

之後,重新啓動elasticsearch服務。

sudo service elasticsearch restart 
+0

是的!!!有用!你能幫我解決與MySQL相同的問題嗎? –

+1

是的,你可以問新的問題。如果我無法提供幫助,那麼對此有更多瞭解的人會幫助你。不要刪除這個問題bcoz這可能會幫助其他人。還添加那裏將更有幫助的偵聽端口細節。 –

+0

好的。萬分感謝!!! –