我正在使用Bottle
服务器来实现我自己的服务器,使用的实现距离简单的“hello world”here不远,我自己的实现是(当然没有路由部分) :
bottleApp =bottle.app()
bottleApp.run(host='0.0.0.0',port=80, debug=true)
我的服务器一直没有响应,然后我进入浏览器:Connection reset by peer
,broken pipe errno 32
日志给出了几乎完全相同的堆栈跟踪,例如question。
到目前为止我尝试了什么,没有成功:
使用try包装服务器运行行,但显示here“mhawke”的答案。
这停止了日志中的错误消息,显然是因为我在except
子句中捕获了它们,但问题是当捕获异常时,这意味着我们已经被抛出run
方法上下文,并且我希望以一种不会导致服务器掉落的方式捕捉它
我不知道它是否可能没有触及bottle
的内部实现文件。
在服务器运行行之前添加:
from signal import signal, SIGPIPE, SIG_DFL
signal(SIGPIPE,SIG_DFL)
正如建议here,但它似乎没有对没有破坏管道\连接重置错误和服务器响应性产生任何影响。
我还想尝试第二个答案here,但我不知道在bottle
服务器的上下文中找到这个代码的位置。
答案 0 :(得分:0)
这听起来像是权限问题或防火墙。
如果您确实需要侦听端口80,那么您需要使用特权帐户运行。此外,您可能需要为tcp流量打开端口80。
我可以看到你使用的东西似乎是Posix(Linux / Unix / OSx)如果你发布了你正在使用的操作系统,我可以编辑这个答案,以便更具体地说明如何打开防火墙并执行特权命令(可能是sudo
,但谁知道呢。