【问题标题】:Running bottle server on shared webhosting在共享虚拟主机上运行瓶子服务器
【发布时间】:2019-01-18 13:55:29
【问题描述】:

我对此很陌生,如果有人能向我澄清这一点,我将不胜感激。

我最近开始修补网络应用程序,并拥有一个用 python 和 cgi 编写的小型网络应用程序。我想试试瓶子,但我在共享服务器上托管。

如果我通过 SSH 连接到我的服务器,我就可以启动了:

python2.7 exi.py

exi.py:

from bottle import *

@route('/login')
def login():
    return '<h1>Oh no</h1>'

if  __name__ == '__main__':
    run()

这给了我:

Bottle v0.13-dev 服务器启动(使用 WSGIRefServer())...

收听http://127.0.0.1:8080/ 按 Ctrl-C 退出。

但如果我去 $mydomain$:8080/login

它正在连接...但最终我会得到 ERR_CONNECTION_TIMED_OUT

甚至可以在这些服务上运行我自己的服务器还是我太天真了?

谢谢你, 雅库布

【问题讨论】:

    标签: python web-hosting bottle


    【解决方案1】:

    你的想法是有道理的。忽略资源限制,如果您已经在那里运行正常运行的 Web 服务,则您可以访问足够的机器来安装软件并打开 Internet 套接字以进行监听。你应该能够运行任何东西。

    不过,您发布的内容告诉了我两件事。首先,bottle 说它在localhost 上运行,只能从主机本身访问(您可以谷歌了解更多信息)。而且,由于您得到的是连接超时而不是连接被拒绝,我可以推断出本地防火墙(例如 iptables)或托管防火墙(例如 AWS 安全组)正在阻止对该端口的入站访问。

    顺便说一句,您不需要服务器来测试这些东西。为什么不在本地运行?任何操作系统都可以运行 Python。更好的是,安装一个带有 Linux 的虚拟机,您将继续提高您的 Unix 技能。或者使用码头工人! Linux docker 主机也可以在 Windows 或 Mac 上运行。

    【讨论】:

    • 那是我害怕的事情。在学习的过程中,我想构建一些有用的东西,如果最终我无法部署它,我不想花时间构建它。
    • 对新手来说很有见地,但另一方面,如果您在服务器上执行一次,您也不会知道如何部署它。但至少它会起作用:p 你的技术是完全有效的。这种担忧是我喜欢 docker 并将其用于所有开发项目的最大原因。我将插入另一个插件以便更快地学习。祝你好运!
    【解决方案2】:

    Bottle 只为您在 localhost 上运行,这意味着您只能从服务器本身访问该服务器。

    试试这个

    run(host='0.0.0.0', port=8080, debug=True)
    

    这将在您的本地 IP 地址上运行它,这应该可以让您从外部访问。

    【讨论】:

    • 还是一样的结果 ERR_CONNECTION_TIMED_OUT
    • XXXXXX@es56 [~/www/cgi-bin]# python2.7 exi.py Bottle v0.13-dev 服务器正在启动(使用 WSGIRefServer())... 监听 0.0.0.0:8080按 Ctrl-C 退出。
    • 另一面在我的回答中
    猜你喜欢
    • 2015-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-01
    • 2018-09-08
    • 1970-01-01
    相关资源
    最近更新 更多