AWS EC2中的维护模式

时间:2012-10-01 03:04:59

标签: amazon-ec2 amazon-web-services

在heroku中我们可以使用命令heroku维护开启或关闭...我如何在我的AWS EC2 Web服务中执行此操作?我尝试使用sudo service nginx stop停止服务器,但我不喜欢显示的错误页面。它表示网址错误。在heroku中,如果我使用维护命令,错误页面将显示“Under contruction”“Maintenance”或类似的东西。

如何在Amazon Web服务中执行此操作?感谢

2 个答案:

答案 0 :(得分:4)

你必须自己做。 AWS没有提供。

答案 1 :(得分:1)

是的,所以heroku有路由魔法,想想你的rails应用程序运行的默认WebBrick服务器是在rails之外运行的。 Idk,假设您使用乘客,您可能不会注意到这一点,但在较高级别,nginx会将您的应用程序的端口3000代理到端口80,以满足某些请求。如果你不知道我的意思,我会道歉。

所以(你的APP)---> (NGINX)-----> (客户)

这里的优点是nginx一直在运行,但在maintience模式下,他们很可能开始将你的页面拍摄到静态内容。如果您通过代理而不是通过乘客来运行应用程序,那么解决方案很容易。停止你的WebBrick,mongrel,unicorn,thin(这里有什么应用程序服务器)并为错误的网关错误设置错误消息页面,即502路由。

如果你使用乘客。您可以编写一个位置块,将所有路径覆盖到维护页面并在该服务器块中将Passenger切换为关闭,现在可以提供静态维护页面,而不是为您的应用程序提供服务。

Heroku包含了大量技术并暴露了很好的工具,因此您需要做更多的基础工作来自动化堆栈。但这是一个开始的地方。