我的团队整个夏天都在使用最新版本的ZF1开发一个简单的微博应用程序。
我们将把钱投入可靠的VPN托管服务器上。我们的目标是创建3个环境 - 开发,测试和产品。我们的想法是在VPN服务器上创建Apache vhost配置并设置test.domain.com,该配置只能从服务器访问,以便普通用户无法从Web访问。然后我们的开发人员可以通过隧道进入服务器并访问test.domain.com。这可行吗?有人曾尝试过这个吗?是否有更好的方法?
答案 0 :(得分:1)
阅读Vhosts,你会发现这是一个非常普通和简单的事情。以下是基于我自己的Linux开发机器的示例。使用此配置,Apache将尝试将ServerName与浏览器中的URL进行匹配。如果我放入test.domain.com它将匹配测试站点,那里将检查允许哪些IP访问该站点。如果我不匹配该IP,Apache将返回并且“您不允许查看此目录错误”(401或403 http代码。不确定是哪个)。如果Apache找不到匹配项,它将使用第一个Vhost,因此您的prod-site应该首先使用。
警告: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>