1

我对这些东西有点新,所以请原谅我的无知。如何用单台服务器管理不同的环境?

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

我想知道什么是管理一台服务器上这3个环境,我猜应该是如下的最佳方式: - 生产可以向所有人 - 测试和应用应该是只有特定的用户访问。

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

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

+2

Apache允许根据像'request uri'或'ip'等条件在apache conf或.htaccess文件中设置envirnoment变量查看'setenvif' http://httpd.apache.org/docs/2.2 /mod/mod_setenvif.html#setenvif – Kamran

+0

你能举一个例子吗?我如何在我的场景中使用它? – user2707590

回答

1

如果您有四种不同的环境,您需要设置应用程序的四个不同实例 - 因为在开发,测试,暂存和生产过程中您不会始终运行相同的代码。

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

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

如果您使用symfony2等应用程序框架,您会发现它是对环境的控制,并且防火墙在这些情况下可以真正实现。

这里是掌握和创造环境的文档:http://symfony.com/doc/current/cookbook/configuration/environments.html

这里是链接到他们的安全食谱:http://symfony.com/doc/current/cookbook/security/index.html

使用的文档存在,你应该能够创造环境的具体安全配置。

+0

我正在使用Yii2 ans来创建多个环境不是问题..虚拟主机也不是.. 但问题是如何处理它,并使测试和分级变得像世界上看不见的。当所有3个服务器都在同一台服务器上时,是否有可能将测试和暂存放在vpn后面,而不是产品? 您如何使用存储库来管理环境? 开发承诺回购,然后用repo更新测试,然后用测试rsync分段然后用分段进行rsync prod ..这样很好吗? – user2707590

相关问题