我不是网络编程方面的专家,对此知之甚少。我正在尝试在EC2实例(Windows Server 2012R2)上运行Web服务,并且使用Flask包在Web服务中编写Web服务。我可以从localhost连接到我的web服务。但我想要做的是从同一网络上 NOT 的远程系统连接它。
我从link了解到,将行更改为app.run(host='0.0.0.0')
会让 SAME 网络上的所有设备都连接到我的网络服务。但就像我说的那样,我想从相同网络上的 NOT 系统进行连接。我怎么能在Flask中做到这一点?我还没有安装Apache。是必要来运行网络服务吗?
任何建议都会非常有用。非常感谢。
答案 0 :(得分:1)
让A成为您连接的服务器。设B是你要连接的服务器,我收集的服务器有时是localhost。
以下是特定于EC2的:您必须打开与特定IP的连接。检查实例的安全设置。如果您向EC2实例添加了安全组,请将IP或服务器的IP添加到其中。否则,请确保将IP列入白名单。
我不完全确定这是你想要的,但是如果每个人应该能够访问A,你应该在端口8000
上运行Flask应用程序。如果只有 B(可能还有你的本地主机)应该能够访问A,那么忽略这段......
自动化,是的。顺便说一下,这是您应该指向的IP,也适用于其他服务器。所以在你的情况下,也指向0.0.0.0
。
不,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