Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的Flask应用程序侦听所有IP_Python_Flask - Fatal编程技术网

Python中的Flask应用程序侦听所有IP

Python中的Flask应用程序侦听所有IP,python,flask,Python,Flask,我的烧瓶应用程序无法正常工作。这是我的代码: from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return "Hello World!" if __name__ == '__main__': app.run(host = '0.0.0.0') 当我在Linode服务器上运行应用程序时,控制台显示:Running on。我的实际服务器地址是:。但是,如果我将浏览器指向那里,

我的烧瓶应用程序无法正常工作。这是我的代码:

from flask import Flask
app = Flask(__name__)


@app.route('/')
def hello():
    return "Hello World!"

if __name__ == '__main__':
    app.run(host = '0.0.0.0')

当我在Linode服务器上运行应用程序时,控制台显示:Running on。我的实际服务器地址是:。但是,如果我将浏览器指向那里,就会收到“权限被拒绝”消息。我的app.py文件位于var/www/html/mysite.com/public_html中。有人知道如何解决这个问题吗?我在host='0.0.0.0'中添加了一些其他帖子所描述的内容,但这似乎没有起到作用。任何关于这方面的建议都将不胜感激。谢谢

第一个检查是从服务器控制台运行wget:

wget 127.0.0.1:5000
wget <external ip of machine>:5000
不要关闭防火墙

对其作出反应:

/etc/init.d/iptables start
如果这解决了问题,那么您需要向iptables或您正在使用的任何防火墙添加一个例外

sudo iptables -A INPUT -p tcp --dport 5000 -j ACCEPT
如果可以,您可以通过运行来保存设置

sudo iptables save
否则,您添加的规则将在重新启动时丢失

但您可能不希望总是在端口5000上运行flask。而是将apache或nginx之类的东西放在你的flask应用程序前面来完成繁重的工作,或者使用mod_wsgi。在端口80上运行需要root权限


请参见

仅将脚本放入公共web文件夹是不够的。您必须部署Flask,通常使用wsgi服务器和Web服务器。阅读详细信息。ran wget和我得到:连接到127.0.0.01 127.0.0.01 | 127.0.0.1 |:5000。。。失败:连接被拒绝。按你说的添加端口。再次运行wget,但仍然拒绝连接。
sudo iptables save