【问题标题】:AWS deployment goes down frequentlyAWS 部署经常宕机
【发布时间】:2013-07-20 01:35:35
【问题描述】:

所以,我在 EC2 实例上进行了一个非常基本的部署,除了几个大问题外,它基本上可以正常工作。现在我只是 ssh'ing 进入盒子并运行

python -m SimpleHTTPServer 80

我在一个安全组上有一个框,允许端口 80 上的 http 请求。

这似乎可行,但如果我不理会它一段时间(通常是 1-2 小时),我的弹性 ip 将开始返回 404。我真的需要这台服务器来为第三方提供演示。关于如何确保它保持正常运行的任何想法?

此外,当我关闭通过 ssh 连接到我的盒子的终端时,它会关闭,这是非常不理想的,因为即使我的计算机关闭,我也希望这个演示能够继续运行。这是一个不太紧急的问题,但也欢迎任何关于此的建议。

【问题讨论】:

  • 您可能需要将您的应用程序配置为使用 Web 服务器作为服务运行。这可能只在您当前的用户会话中运行。
  • @datasage 你有什么资源可以指点我或者示例代码如何做到这一点?
  • @datasage 如果我每隔几分钟将它作为 cronjob 运行一次,会产生同样的效果吗?还是这里涉及很多设置?
  • Cronjob 有点骇人听闻。您应该能够将其作为 cgi 服务运行。我不知道如何用python做这个的细节,我通常的堆栈涉及php。

标签: python deployment amazon-web-services amazon-ec2


【解决方案1】:

使用screen! 这是一个快速教程:http://www.nixtutor.com/linux/introduction-to-gnu-screen/

基本上只是 ssh 进入,通过屏幕打开一个新窗口,通过python -m SimpleHTTPServer 80 启动服务器,然后从窗口分离。此外,您应该能够关闭终端并且它应该保持正常运行。

【讨论】:

  • 啊哇,这真的很酷。它并不能完全解决我在这里的主要问题,但感谢您将我引向一项很酷的新技术!
【解决方案2】:

我能够通过组合一个 cron 作业来运行一个启动服务器的 bash 脚本来解决这个问题,但我不确定这是否是最好的方法。不过,它似乎在短期内解决了我的问题。作为参考,这是我使用的代码:

import SimpleHTTPServer
import SocketServer

PORT = 80

Handler = SimpleHTTPServer.SimpleHTTPRequestHandler

httpd = SocketServer.TCPServer(("", PORT), Handler)

httpd.serve_forever()

我将其包装在一个简单的 bash 脚本中:

#!/bin/bash
cd relevant/directory
sudo -u ubuntu python simple_server.py

我确定有更好的使用权限,但在那之后我就跑了

chmod -R 777 bash_script.sh

为了确保我不会在这方面遇到任何问题。

然后放在一个cronjob中每分钟运行一次(越多越好,对吧?)

crontab -e (Just to bring up the relevant file)

在这一行添加:

*/1 * * * * path/to/bash_script.sh

而且它似乎正在工作。我关闭了我的 ssh 终端,一切仍在运行,还没有任何问题发生。如果有什么问题我会更新,但我通常对这个解决方案很满意(不是说我会在两周内了解更多关于这个主题的信息),但它看起来非常小而且水平很低,这意味着我至少了解什么我刚做了。

【讨论】:

    【解决方案3】:

    SimpleHTTPServer 仅在端口 80 上提供静态页面,主要用于开发期间。

    对于生产用途(如果您想使用 EC2),我建议您阅读 Apachenginx。基本上,您需要一个在 Linux 上运行的 Web 服务器。

    如果您认为您的网站将保留静态文件(HTML、CSS、JS),我建议您将它们托管在 Amazon S3 上。 S3 更便宜,更可靠。请查看此答案以获取说明:Static hosting on Amazon S3 - DNS Configuration

    享受吧!

    【讨论】:

      猜你喜欢
      • 2018-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-17
      • 2021-05-19
      相关资源
      最近更新 更多