这是我的新手,如果有人可以向我澄清一下,我将不胜感激。
我最近开始修改Web应用程序,并且有一个用python和cgi编写的小型Web应用程序。我想尝试瓶子,但我托管在共享服务器上。
如果我通过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
是否有可能在这些服务上运行我自己的服务器,或者我太天真了?
谢谢你, 雅各布
答案 0 :(得分:1)
Bottle只为您在localhost上运行,这意味着您只能从服务器本身访问该服务器。
试试看
run(host='0.0.0.0', port=8080, debug=True)
这将在您的本地IP地址上运行它,这应该使您可以从外部进行访问。
答案 1 :(得分:1)
您的想法很有道理。忽略资源限制,如果您已经在那里运行了功能正常的Web服务,则可以访问该计算机以安装软件并打开Internet套接字进行监听。您应该几乎可以运行任何东西。
您发布的内容告诉了我两点。首先,bottle表示它正在localhost
上运行,只能从主机本身访问(您可以在Google上获取更多信息)。而且,由于您得到的是连接超时而不是拒绝连接,因此我可以推断出本地防火墙(例如iptables)或托管防火墙(例如AWS安全组)正在阻止对该端口的入站访问。
顺便说一句,您不需要服务器即可测试这些东西。为什么不在本地运行?任何操作系统都可以运行Python。更好的是,在Linux上安装虚拟机,您将继续提高Unix技能。或使用docker! Linux docker主机也可以在Windows或Mac上运行。