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

时间:2015-01-21 15:24:52

标签: python ubuntu ssl bottle ports

我在localhost:8090上运行Ubuntu上的本地Web服务,用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 是默认

我已经感觉到它在服务器被执行时会阻塞连接并间接地#34; (链接,脚本或.desktop),因为当我实际点击文件或通过终端运行它时运行正常。

但是,我不知道在哪里阻止它阻止连接。非常感谢任何帮助。

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

提前致谢

2 个答案:

答案 0 :(得分:1)

  1. 观看服务器日志。
  2. 不同调用方法之间的主要区别可能是当前的工作目录。
  3. 我认为网络配置不太可能涉及您正在观察的内容。
  4. 根据Web应用程序的复杂性,如果主脚本未从正确的目录运行,则Python导入可能会失败。这将触发Python异常,这可能导致立即重置连接。我没有使用过瓶子,但是其他Python Web框架区分了浏览器中显示Python回溯的开发模式,以及将HTTP错误发送到客户端的生产模式。

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

答案 1 :(得分:0)

好的,问题已解决

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

如果我运行.sh脚本或同一目录中的链接一切正常,如果我在脚本中提供 cd 命令,一切都会顺利进行。

感谢Jan-Philip的帮助!