我在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),因为当我实际点击文件或通过终端运行它时运行正常。
但是,我不知道在哪里阻止它阻止连接。非常感谢任何帮助。任何解决方法都可以,即使只是假装文件是直接从用户运行的。
提前致谢
答案 0 :(得分:1)
根据Web应用程序的复杂性,如果主脚本未从正确的目录运行,则Python导入可能会失败。这将触发Python异常,这可能导致立即重置连接。我没有使用过瓶子,但是其他Python Web框架区分了浏览器中显示Python回溯的开发模式,以及将HTTP错误发送到客户端的生产模式。
这是您应该做的调试问题:从终端(cd
到正确的目录运行服务器,然后运行python application.py
)。使用浏览器连接到Web应用程序时,请仔细观察该服务器进程的stdout和stderr。
答案 1 :(得分:0)
好的,问题已解决。
实际上,这取决于当前工作目录与运行WSGI服务器的python文件不同。
如果我运行.sh脚本或同一目录中的链接一切正常,如果我在脚本中提供 cd 命令,一切都会顺利进行。
感谢Jan-Philip的帮助!