2016-11-16 53 views
0

我們試圖使用nginx作爲代理/路由器的事情,所以我們可以重新開發大型monolith網站的部分。這個想法是讓開發者在一個流浪者創建的vm中運行nginx,這個vm會將請求路由到一個新的站點或原始的龐然大物。所有的站點都在主機上的窗口中。如何設置我的流浪者vm上的主機文件

我需要在guest os上設置hosts文件,以便它可以路由到主機。目前主機網站運行在本地主機上,客戶端操作系統認爲它也在127.0.0.1上,所以nginx的路由失敗。

我需要通過站點名稱和主機ip來更新guest虛擬機文件。

我看到一個叫做vagrant host manager的東西,但是......我被這個網絡東西迷惑了。

感謝

更新: 我有這樣的vagrantfile設置nginx的。

config.vm.provision "shell", inline: <<-SHELL1 
    apt-get -y update 
    apt-get -y install nginx 
    apt-get -y install curl 

    SHELL1 

    config.vm.provision "shell", run:"always", inline: <<-SHELL2 
    echo "Configuring Nginx" 
    cp /vagrant_data/nginx.conf /etc/nginx/sites-available/nginx_vhost 
    ln -s /etc/nginx/sites-available/nginx_vhost /etc/nginx/sites-enabled/ 
    rm -rf /etc/nginx/sites-available/default 
    service nginx restart 

    SHELL2 

和我有以下更新我的主機的主機文件(Windows):

config.hostmanager.enabled = true 
    config.hostmanager.manage_host = true 
    config.hostmanager.manage_guest = false 
    config.hostmanager.ignore_private_ip = false 
    config.hostmanager.include_offline = true 
+0

你知道你需要添加到主機文件嗎?只需要一個shell腳本將信息追加到您的文件。 –

+0

是的,但我想提供給其他開發者,所以我不能在那裏硬編碼自己的IP地址。我認爲一個shell腳本可以很好地工作 - 只是不知道如何將它們放入vagrant文​​件中。 – Jonesie

+0

哦,剛剛發現這個:http://stackoverflow.com/questions/19917148/tell-vagrant-the-ip-of-the-host-machine – Jonesie

回答

0

好的解決按照上面的更新以及使用此方法來更新客戶操作系統主機:

sudo echo "10.0.2.2 site.name" | sudo tee -a /etc/hosts 

10.0.2.2是主機的硬編碼的virtualbox ip。 使用sed的其他變體給出了錯誤。