Testing 如何在本地使用生产Web服务器配置

Testing 如何在本地使用生产Web服务器配置,testing,nginx,webserver,Testing,Nginx,Webserver,我正在使用Nginx虚拟主机为域提供服务,我想在部署之前在本地测试我的配置 我发现的唯一方法是在本地端口80上运行nginx,并将以下行临时添加到我的/etc/hosts文件中: 127.0.0.1 example.com 这会导致example.com解析到我的本地nginx实例 是否有更好的方法处理此问题?本地主机 当我只需要快速检查本地主机上运行的服务器时,以下shell脚本已被证明非常方便: spoof(){ hosts_file='/etc/hosts' 温度=$(mktemp

我正在使用Nginx虚拟主机为域提供服务,我想在部署之前在本地测试我的配置

我发现的唯一方法是在本地端口80上运行nginx,并将以下行临时添加到我的
/etc/hosts
文件中:

127.0.0.1    example.com
这会导致
example.com
解析到我的本地nginx实例

是否有更好的方法处理此问题?

本地主机 当我只需要快速检查本地主机上运行的服务器时,以下shell脚本已被证明非常方便:

spoof(){
hosts_file='/etc/hosts'
温度=$(mktemp)
cp“$hosts_文件”$temp”
trap'sudo sh-c“mv\”$temp\“$hosts\u file\”;trap“”退出;返回0'01 2 3 9 15
hosts_lines=“6i#SPOOFS:\n”
因为我在“$@”中是这样做的
主机\u行+=“127.0.0.1\t$i\n”
转移
完成
sudo sh-c“sed-i\”$hosts\u行\“\”$hosts\u文件\”
echo“按CTRL-C退出…”
无限睡眠
}
它接受任意数量的域,欺骗它们,并在退出时替换原始的
/etc/hosts
。用法示例:

$ spoof example.com example.net example.org
流浪汉 为了长期使用,我使用Vagrant和插件


安装后,只需将
config.hostsupdater.alias=['dev.example.com']
添加到任何Vagrant文件,即可通过主机上的“dev.example.com”访问VM上的“example.com”。

根据您的具体需求,可能会有更好的解决方案,但您所做的肯定是一个可靠的测试,我也会这么做。Nginx配置不是我经常更改的,所以我觉得这并不太难。如果您经常测试这些更改,您可以随时编写脚本。@Brad,是的,我在考虑编写shell脚本时发布了这个问题。我最担心的是,总有一天我会忘记这件事,在电话里和一个客户争论他们的网站是什么样子的。你发现自己经常测试你的Nginx配置吗?如果只是为了测试站点本身,我建议使用不同的主机名。在我的工作流程中,我在我的vagrant框中使用了
vagrant hostmanager
插件,还有一个像
www.dev.example.com
@Brad这样的开发主机名,不,我不经常这么做,这就是为什么我担心我会忘记,哈哈。最近,我一直在追踪我怀疑是框架的url/端口重写中的一个bug,我无法在开发中重现这个bug。