我的团队整个夏天都在使用最新版本的 ZF1 开发一个简单的微博应用程序。
我们将把钱投资在可靠的 VPN 托管服务器上。我们的目标是创建 3 个环境 - dev、test 和 prod。我们的想法是在 VPN 服务器上创建一个 Apache vhost 配置并设置 test.domain.com 只能从服务器访问,这样普通用户就无法从 Web 访问它。然后我们的开发人员可以通过隧道进入服务器并访问 test.domain.com。这是可行的吗?有没有人试过这个?有没有更好的不同方法?
我的团队整个夏天都在使用最新版本的 ZF1 开发一个简单的微博应用程序。
我们将把钱投资在可靠的 VPN 托管服务器上。我们的目标是创建 3 个环境 - dev、test 和 prod。我们的想法是在 VPN 服务器上创建一个 Apache vhost 配置并设置 test.domain.com 只能从服务器访问,这样普通用户就无法从 Web 访问它。然后我们的开发人员可以通过隧道进入服务器并访问 test.domain.com。这是可行的吗?有没有人试过这个?有没有更好的不同方法?
阅读 Vhosts,您会发现这是一件非常常见且简单的事情。下面是一个基于我自己的 Linux 开发机的例子。使用此配置,Apache 将尝试将 ServerName 与浏览器中的 URL 匹配。如果我输入 test.domain.com,它将匹配测试站点,并在那里检查允许哪些 IP 访问该站点。如果我与该 IP 不匹配,Apache 将返回并“不允许您查看此目录错误”(401 或 403 http 代码。不确定是哪个)。如果 Apache 没有找到匹配项,它将使用第一个 Vhost,因此您的产品站点应该首先使用。
一句警告:Apache 使用浏览器中的 URL 进行匹配,所以如果我编辑我的主机文件,我可以欺骗 apache。随后,如果我成功欺骗了我的 IP,我就可以访问您的开发站点。因此,请始终在 TEST 和 DEV 站点上使用正确的登录/身份验证和授权程序,以防止任何损坏。
<VirtualHost *:80>
ServerName domain.com, www.domain.com
DocumentRoot /home/prod/document_root
<Directory />
Options FollowSymLinks
AllowOverride All
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName dev.domain.com
DocumentRoot /home/dev/document_root
<Directory />
Options FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
Allow from "localhost"
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName test.domain.com
DocumentRoot /home/test/document_root
<Directory />
Options FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
Allow from "Some IPs"
</Directory>
</VirtualHost>