1

几天来,我一直在谷歌上搜索,试图找到一个直接的答案来解释为什么会发生这种情况,但找不到任何有用的东西。我有一个 web2py 应用程序,它只是读取数据库并向 REST api 发出一些请求。它是一个健康检查监视器,因此它每分钟都会自行刷新。在任何给定时间大约有 20 个用户。这是我在日志文件中经常看到的错误:

ERROR:Rocket.Errors.Port8080:Traceback (most recent call last):
  File "/opt/apps/web2py/gluon/rocket.py", line 562, in listen
    sock = self.wrap_socket(sock)
  File "/opt/apps/web2py/gluon/rocket.py", line 506, in wrap_socket
    ssl_version = ssl.PROTOCOL_SSLv23)
  File "/usr/local/lib/python2.7/ssl.py", line 342, in wrap_socket
    ciphers=ciphers)
  File "/usr/local/lib/python2.7/ssl.py", line 121, in __init__
    self.do_handshake()
  File "/usr/local/lib/python2.7/ssl.py", line 281, in do_handshake
    self._sslobj.do_handshake()
error: [Errno 104] Connection reset by peer

根据一些谷歌搜索,最有希望的信息是有人试图通过防火墙进行连接,因此它正在终止连接,但是我不明白为什么它会关闭实际的应用程序。该进程仍在运行,但没有人可以连接,我必须重新启动 web2py。

我将非常感谢这里的任何输入。我已经超越了挫败感。

谢谢!

4

1 回答 1

1

最常见的Connection reset by peer错误来源是远程客户端决定他不想再联系您,并取消交互(使用shutdown/anRST数据包)。如果用户在网站加载时导航到不同的页面,就会发生这种情况。

在您的情况下,远程主机甚至在您读取或写入任何内容之前就放弃了连接。使用当前的 web2py,这应该只输出你看到的警告,而不是终止任何东西。

如果您有当前的web2py,则无法连接的错误与这些错误消息无关。如果你有旧版本的 web2py,你应该更新。

于 2012-06-22T18:03:35.743 回答