Vagrant里安装Flask后,hello.py运行成功,为什么主机无法访问 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
linode
V2EX    Vagrant

Vagrant里安装Flask后,hello.py运行成功,为什么主机无法访问

  •  1
     
  •   linode 2013-01-17 21:51:00 +08:00 9076 次点击
    这是一个创建于 4717 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Vagrantfile添加配置:
    config.vm.forward_port 5000, 5000

    运行Flask简单的hello.py代码测试
    http://flask.pocoo.org
    提示 Running on http://127.0.0.1:5000/

    回到主机,访问http://127.0.0.1:5000/
    浏览器返回:

    > 未收到数据
    > 服务器未发送任何数据,因此无法载入该网页。
    > 以下是一些建议:
    > 请稍后重新加载此网页。
    > 错误 324 (net::ERR_EMPTY_RESPONSE):服务器已断开连接,且未发送任何数据。

    该怎么访问呢?
    11 条回复    1970-01-01 08:00:00 +08:00
    liuxurong
        1
    liuxurong  
       2013-01-17 22:12:21 +08:00
    http://docs.torriacg.org/docs/flask/quickstart.html

    如果你运行服务器,你会注意到它只能从你自己的计算机上访问,网络中其 它任何的地方都不能访问。这是因为默认情况下,调试模式,应用中的一个 用户可以执行你计算机上的任意 Python 代码。

    如果你禁用了 debug 或信任你所在网络的用户,你可以简单修改调用 run() 的方法使你的服务器公开可用,如下:

    app.run(host='0.0.0.0')

    这让你的操作系统去监听所有公开的IP。
    linode
        2
    linode  
    OP
       2013-01-17 22:26:42 +08:00
    @liuxurong
    app.run(host='0.0.0.0')的方法确实可访问,但每次修改了代码都得手动重启
    于是我启用了debug模式app.run(debug=True),结果又返回之前的错误了
    liuxurong
        3
    liuxurong  
       2013-01-17 22:28:42 +08:00   1
    app.run(host='0.0.0.0',debug=True)

    @linode
    linode
        4
    linode  
    OP
       2013-01-18 11:11:38 +08:00
    @liuxurong 谢谢,成功了。上线部署的时候host='0.0.0.0'这个如果不移除会有影响吗?
    0bit
        5
    0bit  
       2013-01-18 16:20:21 +08:00
    app.run应该是在if __name__ == "__main__"里的,上线部署的时候,你不会直接用Flask的Server吧,用uwsgi或者gunicorn,就没问题了,别忘了设置bind的信息。
    linode
        6
    linode  
    OP
       2013-01-18 22:48:10 +08:00
    @0bit
    @liuxurong
    嗯,同样的。如果我在主机安装了mongodb,127.0.0.1:27017。
    那么Vagrant如何访问主机的mongodb呢?
    Livid
        7
    Livid  
    MOD
    PRO
       2013-01-18 23:11:34 +08:00
    在 Vagrantfile 里加一行:

    config.vm.forward_port 27017, 27017

    然后虚拟机的 27017 就变成你实体机的 27017。
    linode
        8
    linode  
    OP
       2013-01-18 23:51:45 +08:00
    config.vm.forward_port 27017, 27017加了,端口也是对的

    还是无法链接,使用Vagrant里运行mongo提示:
    Fri Jan 18 16:48:10 Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js:91
    exception: connect failed

    运行原先写的flask应用提示
    could not connect to 127.0.0.1:27017: [Errno 111] Connection refused
    wuxqing
        9
    wuxqing  
       2013-01-19 00:32:41 +08:00
    @linode
    把linux下的防火墙关了试试看
    linode
        10
    linode  
    OP
       2013-01-19 10:59:33 +08:00
    @wuxqing 没有效果
    everbird
        11
    everbird  
       2013-01-19 16:02:52 +08:00
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2867 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 14:54 PVG 22:54 LAX 06:54 JFK 09:54
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86