Vagrant:为什么我不能使用域名访问nginx?

时间:2017-10-02 15:54:46

标签: vagrant

我在Windows 10上使用Vagrant

我已经安装了centos 7 vagrant box,它运行正常。

Vagrantfile是这样的:

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

Vagrant.configure("2") do |config|

  config.vm.box = "dev"
  config.vm.hostname = "vagrant-dev"
  config.vm.network "forwarded_port", guest: 80, host: 8080
  config.vm.network "private_network", ip: "192.168.33.3"
  config.vm.synced_folder "d:/vagrant_env/www/", "/var/www"

end

我在centos 7 vagrant box中安装了nginx,我可以使用ip 192.168.33.3访问nginx欢迎页面。

我想用域名访问它,所以我配置C:\Windows\System32\drivers\etc\hosts  windows中的文件:

192.168.33.3   www.example.vagrant   //add this line into hosts file of windows

并在centos 7中配置/etc/nginx/conf.d/default.conf文件:

server {
    listen       80;
    server_name  www.example.vagrant;
    //...
}

我尝试在Windows主机上访问www.example.vagrant,但它不起作用。

我该怎么办?

2 个答案:

答案 0 :(得分:1)

有两个更好的解决方案:

  • 使用xip.io作为您的地址。在这种情况下,http://example.192.168.31.3.xip.io/将转到您的地址。
  • 为可以解决的条目设置DNS条目。注册商处的便宜.com.info测试域可以轻松进行更新(例如Amazon Route 53),这对您来说非常方便。

有些程序顽固地拒绝阅读/etc/hosts中的条目或Windows中的等效条目。

答案 1 :(得分:0)

导航至浏览器中的192.168.31.3:8080。如果您可以看到您的服务器,那么只需按照以下方式进行重定向:192.168.31.3:8080 www.example.vagrant

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

此时您正在说"无论在端口80上的Vagrant内发生什么,都将其转发到主机上的端口8080"。您必须在端口8080上与您的Vagrant机器通信。

您的IP错误192.168.33.3 vs 192.168.31.3