从不在同一网络上的设备连接Flask Web服务

时间:2016-07-03 07:22:32

标签: python apache web-services amazon-web-services flask

我不是网络编程方面的专家,对此知之甚少。我正在尝试在EC2实例(Windows Server 2012R2)上运行Web服务,并且使用Flask包在Web服务中编写Web服务。我可以从localhost连接到我的web服务。但我想要做的是从同一网络上 NOT 的远程系统连接它。

我从link了解到,将行更改为app.run(host='0.0.0.0')会让 SAME 网络上的所有设备都连接到我的网络服务。但就像我说的那样,我想从相同网络上的 NOT 系统进行连接。我怎么能在Flask中做到这一点?我还没有安装Apache。是必要来运行网络服务吗?

任何建议都会非常有用。非常感谢。

1 个答案:

答案 0 :(得分:1)

让A成为您连接的服务器。设B是你要连接的服务器,我收集的服务器有时是localhost。

为什么B不能连接到A?

1。安全设置

以下是特定于EC2的:您必须打开与特定IP的连接。检查实例的安全设置。如果您向EC2实例添加了安全组,请将IP或服务器的IP添加到其中。否则,请确保将IP列入白名单。

2。端口

我不完全确定这是你想要的,但是如果每个人应该能够访问A,你应该在端口8000上运行Flask应用程序。如果只有 B(可能还有你的本地主机)应该能够访问A,那么忽略这段......

0.0.0.0允许SAME网络上的设备连接

自动化,是的。顺便说一下,这是您应该指向的IP,也适用于其他服务器。所以在你的情况下,也指向0.0.0.0

是否需要Apache?

不,Apache 是必要的。如果需要,您可以保留Flask开发服务器。 (a.k.a.您可以使用python run.py并让该进程继续运行“Web服务”)在这种情况下,具体而言,您不需要Apache来完成这项工作。从长远来看,您需要Apache或Nginx来运行您的Web服务。

这是一个可以用来通过Python安装Apache2的教程。只需忽略MySQL部分:https://www.digitalocean.com/community/tutorials/how-to-set-up-an-apache-mysql-and-python-lamp-server-without-frameworks-on-ubuntu-14-04