[英]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)时,我感觉到它阻塞了连接,因为当我实际单击文件或通过终端运行它时,它运行良好。
不过,我对如何阻止它阻止连接一无所知。 任何帮助是极大的赞赏。
任何解决方法都可以,即使只是假装直接从用户运行文件。
提前致谢
根据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.