如何将烧瓶配置为可通过 public IP 接口访问?

How can one configure flask to be accessible via public IP interface?

一旦我在 flask 中设置 SERVER_NAME 或主机 属性,我就无法通过它们的 url 从外部解决任何方法。以下是我的应用程序初始化配置:

flask_sqlalchemy import SQLAlchemy
from flask.ext.cors import CORS
__authors__ = 'DarkStar1'

from flask import Flask

app = Flask(__name__)
app.config.from_object('config')
app.config['DEBUG'] = True
app.config['SERVER_NAME'] = '0.0.0.0'
#app.run(host='0.0.0.0')
CORS(app)

db = SQLAlchemy(app)

from oms import user_service, person_service

我可以设置 DEBUG param/property 但尝试设置主机或 SERVER_NAME 会导致所有 urls,例如 http://< hostname >:5000/test ,导致 404。 由于服务器是远程开发服务器,因此我能够通过本地主机从 Flask 隧道获取所有 urls 上的 200s。端口已启用,我正在使用的烧瓶版本是 python 2.7.6 上的 0.10.1。我搜索和阅读文档无济于事。

运行 烧瓶使用

app.run(host="0.0.0.0:PORT#")

在命令提示符中使用 ifconfig 查找您的 IPv4 地址,然后在浏览器中您可以使用 ipaddress:port#

访问您的应用

您可能必须配置您的路由器(端口转发)以使其公开可用,否则您可以 download/use https://ngrok.com/ ----> 这会将您在 NaT 或防火墙后面的本地主机暴露给互联网。

下载后,您可以通过 运行ning

进行配置
ngrok http localhost:5000

这将为您提供 RANDOMsubdomain.ngrok.io,您几乎可以在任何地方测试您的应用程序