繁体   English   中英

“间接”运行时连接中断。 Ubuntu上的Bottle.py

[英]Connection interrupted when run “indirectly”. Bottle.py on Ubuntu

我正在Ubuntu:本地主机上运行本地Web服务:8090,用bottle.py编写。 连接使用SSL。

如果我从Nautilus或终端执行main.py文件并连接到https:// localhost:8090,一切正常。

当我通过指向文件,.sh脚本或.desktop文件的链接执行该文件时,服务器开始正常运行,但是当我浏览至该地址时,firefox说“页面加载时与localhost:8090的连接中断”

$ telnet 127.0.0.1 8090给出了这一点:

Trying 127.0.0.1...
Connected to 127.0.0.1...
Escape character is '^]'.
Connection closed by foreign host.

$ sudo netstat -ntlupp | grep 8090给出了以下内容:

tcp   0   0 127.0.0.1:8090   0.0.0.0:*   LISTEN

iptables是默认的

当服务器“间接”执行(链接,脚本或.desktop)时,我感觉到它阻塞了连接,因为当我实际单击文件或通过终端运行它时,它运行良好。

不过,我对如何阻止它阻止连接一无所知。 任何帮助是极大的赞赏。

任何解决方法都可以,即使只是假装直接从用户运行文件。

提前致谢

  1. 观看服务器日志。
  2. 不同的调用方法之间的主要区别可能是当前的工作目录。
  3. 我认为您所观察的内容不太可能涉及网络配置。

根据Web应用程序的复杂程度,如果未从正确的目录运行主脚本,则Python导入可能会失败。 这将触发Python异常,这可能导致立即重置连接。 我没有使用Bottle,但是其他Python Web框架区分了在浏览器中显示Python追溯的开发模式和将HTTP错误发送到客户端的生产模式。

这是调试问题的方法:从终端运行服务器(从cd到正确的目录,然后运行python application.py )。 使用浏览器连接到Web应用程序时,请仔细观察该服务器进程的stdout和stderr。

好, 问题解决了

实际上,这取决于当前的工作目录与运行WSGI服务器的python文件是否相同。

如果我运行.sh脚本或来自同一目录的链接,则一切正常,如果我在脚本中给出cd命令,则一切正常。

感谢Jan-Philip的帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM