【发布时间】:2016-11-16 19:20:20
【问题描述】:
我们正在尝试使用 nginx 作为代理/路由器,这样我们就可以重新开发大型单体网站的部分内容。这个想法是让开发人员在 vagrant 创建的 vm 中运行 nginx,它将请求路由到新站点或原始单体。所有站点都在主机上的 Windows 中。
我需要在来宾操作系统上设置主机文件,以便它可以路由到主机。当前主机网站在 localhost 上运行,而来宾操作系统认为它也在 127.0.0.1 上,因此来自 nginx 的路由失败。
我需要让 vagrant 使用站点名称和主机 IP 更新来宾主机文件。
我看到一个叫做 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
【问题讨论】:
-
你知道你需要添加到主机文件吗?只需一个 shell 脚本即可将信息附加到您的文件中。
-
是的,但我想将其提供给其他开发人员,因此我无法在其中硬编码自己的 IP 地址。我认为 shell 脚本可以正常工作 - 只是不知道如何将其放入 vagrantfile。
标签: vagrant