0

我刚刚创建了一个轻量级 web.py Web 应用程序,我能够成功地将它托管在 Amazon EC2 实例上。我可以使用以下命令很好地提供网页:

python bin/app.py &

我在末尾特别添加了 & 符号,以确保该过程在后台继续进行,并且即使我关闭与我的 EC2 实例的 ssh 连接,也会提供 Web 应用程序。但是,我注意到一段时间后,在尝试访问同一页面时,我开始收到一些错误消息。会不会是 EC2 在一段时间后以某种方式从我的实例中夺走了资源,这可能是造成这种情况的原因吗?我在 EC2 上创建持久 Web 服务的方法也很好,还是有更好的方法?

我看到的错误是:

Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/lpthw.web-1.1-py2.6.egg/web/wsgiserver/__init__.py", line 1245, in communicate
req.respond()
  File "/usr/lib/python2.6/site-packages/lpthw.web-1.1-py2.6.egg/web/wsgiserver/__init__.py", line 775, in respond
self.server.gateway(self).respond()
  File "/usr/lib/python2.6/site-packages/lpthw.web-1.1-py2.6.egg/web/wsgiserver/__init__.py", line 2018, in respond
response = self.req.server.wsgi_app(self.env, self.start_response)
  File "/usr/lib/python2.6/site-packages/lpthw.web-1.1-py2.6.egg/web/httpserver.py", line 268, in __call__
return self.app(environ, xstart_response)
  File "/usr/lib/python2.6/site-packages/lpthw.web-1.1-py2.6.egg/web/httpserver.py", line 236, in __call__
return self.app(environ, start_response)
  File "/usr/lib/python2.6/site-packages/lpthw.web-1.1-py2.6.egg/web/application.py", line 287, in wsgi
start_resp(status, headers)
  File "/usr/lib/python2.6/site-packages/lpthw.web-1.1-py2.6.egg/web/httpserver.py", line 265, in xstart_response
self.log(status, environ)
  File "/usr/lib/python2.6/site-packages/lpthw.web-1.1-py2.6.egg/web/httpserver.py", line 281, in log
print >> outfile, utils.safestr(msg)
IOError: [Errno 5] Input/output error
4

2 回答 2

2

带有 lighttpd 的 FastCGI 是在生产中使用 web.py 的推荐方式。我推荐关于部署的 web.py 文档:http ://webpy.org/deployment

于 2013-02-07T22:05:57.500 回答
2

使用 No Hangup 命令确保关闭 SSH 会话时不会终止后台进程。

$ nohup python bin/app.py &
于 2013-06-25T02:31:25.407 回答