2.1 Vagrant简介
大部分的线上服务器运行Linux操作系统,而本地的开发环境往往是OS X或者Windows。Nginx涉及到很多操作系统的特性,比如epoll。这使得Nginx可以在Linux上正常运行,但是无法工作在本地开发环境上。
这些差异给开发带来了不便。如何解决这个问题呢?这里建议使用Vagrant 虚拟机。使用Vagrant,可以很方便的在Mac上虚拟出Linux服务器,然后将Dengine
,camel-agent
部署在本地虚拟出来的Vagrant实例上,提升开发的效率。
Docker在16年发布了Docker for Mac版本。Docker比Vagrant更加轻量,为什么不使用Docker在本地虚拟服务器呢?
因为Docker for Mac本质上是在Mac上虚拟一台Linux服务器,然后在Linux服务器上在部署Docker实例。Mac与Docker实例隔了一层,无法通过ip连接实例。
而Vagrant没有这个问题。Vagrant虚拟服务器时,可以配置私有ip。宿主机可以通过该私有ip连接实例。多个Vagrant实例,如果私有ip在一个网段上,则实例之间也可以相互连接。
Vagrant 提供了友好的文档,您可以按照文档搭建出Linux环境。
Vagrant最新版本1.8.5有一个ssh的问题:在启动实例时,ssh权限不足导致无法登陆。
如果遇到这种情况,请安装patch(https://github.com/mitchellh/vagrant/issues/7610)。这个patch更改了操作ssh key的ruby文件,增加了对.ssh文件夹的操作权限。
Vagrant新起的实例,dns往往指向本地。需要更改dns地址,建议使用免费的8.8.8.8。