如何使用单个服务器管理不同的环境?

时间:2015-05-02 08:11:24

标签: php apache server development-environment production-environment

我对这些东西有点新意,所以原谅我的无知。

我正在开发一个Web应用程序,我有4个环境;开发,测试,分期和生产。我只有一台服务器。

我想知道在1台服务器上管理这3种环境的最佳方法是什么,我猜应该如下: - 每个人都可以访问制作 - 只有特定用户才能访问测试和暂存。

那么你们如何管理这些环境?

我正考虑从我的虚拟主机中的ips列表中提取,但用户可能没有静态IP地址。 有什么建议吗?

1 个答案:

答案 0 :(得分:1)

如果您有四种不同的环境,则需要设置四个不同的应用程序实例 - 因为您并不总是在开发,测试,登台和生产下运行相同的代码。 / p>

使用Apache,您可以使用基于名称的虚拟主机来设置子域,并将它们指向每个不同的环境。如果服务器上有控制面板,则应该为您创建子域。如果您需要一次尝试Vesta CP - 它是免费的。

您可以在服务器上的应用程序或安全指令中使用代码和配置来控制对不同环境的访问。一种常见的方法是使用可信任的IP地址,但在这里要小心 - 您可能遇到信任此字段的安全问题 - 确保您非常小心地信任(或者只是不信任) X-Forwarded-For标头(由代理使用)。通过这样做,这个网站的访问权破坏了它的开发环境(谷歌:攻击的解剖我如何破解stackoverflow,我不能发布任何更多的链接)。

如果你使用symfony2这样的应用程序框架,你会发现它在这些场景中对环境和防火墙的控制确实可以自成一体。

以下是掌握和创建环境的文档:http://symfony.com/doc/current/cookbook/configuration/environments.html

以下是其安全配方的链接:http://symfony.com/doc/current/cookbook/security/index.html

使用那里的文档,您应该能够创建特定于环境的安全配置。