AWS部署经常中断

2024-06-02 07:16:20 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我在一个EC2实例上有了一个非常基本的部署,除了几个大问题之外,它基本上是可以工作的。现在我只是进入盒子然后跑

python -m SimpleHTTPServer 80

我在一个安全组上有一个盒子,它允许在端口80上发送http请求。在

这似乎是可行的,但如果我让它单独一段时间(通常是1-2个小时),我的弹性ip将开始返回404。我真的需要这台服务器来为第三方演示。有什么办法让它保持正常?在

另外,当我关闭通过ssh连接到我的盒子里的终端时,它就会掉下来,这是非常不理想的,因为我希望这个演示即使我的电脑关机也能保持正常。这是一个不那么紧急的问题,但任何关于这方面的建议也将不胜感激。在


Tags: 实例端口ip服务器http终端部署ec2
3条回答

SimpleHTTPServer只在端口80上提供静态页,主要用于开发过程中。在

对于生产使用(如果您想使用EC2),我建议您阅读Apache或{}。基本上你需要一个运行在Linux上的web服务器。在

如果你认为你的网站仍然是静态文件(HTML,CSS,JS),我建议你把它们放在amazons3上。S3更便宜,更可靠。请看这个答案以获得指导:Static hosting on Amazon S3 - DNS Configuration

享受吧!在

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

基本上只要ssh进入,通过screen打开一个新窗口,通过python -m SimpleHTTPServer 80启动服务器,然后从窗口中分离。此外,你应该能够关闭你的终端,它应该保持不动。在

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

import SimpleHTTPServer
import SocketServer

PORT = 80

Handler = SimpleHTTPServer.SimpleHTTPRequestHandler

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

httpd.serve_forever()

我用一个简单的bash脚本编写了这个脚本:

^{pr2}$

我肯定有更好的使用许可,但之后我就跑了

chmod -R 777 bash_script.sh

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

然后被安排在一个cronjob中,每分钟都在运行(越多越好,对吧?)在

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

在此行中添加:

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

它似乎在起作用。我关闭了我的ssh终端,一切仍在运行,但还没有发生任何故障。如果有什么问题,我会更新,但我通常对这个解决方案很满意(不是说我会在两周内学到更多关于这个主题的知识),但它似乎非常简单和低水平,这意味着我至少了解我刚刚做了什么。在

相关问题 更多 >