从不在同一n上的设备连接Flask webservice

2024-04-27 03:33:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我不是网络编程方面的专家,对它知之甚少。我试图在一个EC2实例(windowsserver2012r2)上运行一个webservice,这个webservice是用Python编写的,使用Flask包。我可以从本地主机连接到我的webservice。但我想做的是把它从一个远程系统连接起来,这个系统不在同一个网络上。在

我从这个link中了解到,将线路改为app.run(host='0.0.0.0')将允许同一网络上的所有设备连接到我的webservice。但是就像我说的,我想从一个系统连接,这个系统是不是相同的网络上。我怎么能在烧瓶里做到呢?我还没有安装Apache。运行web服务是否需要这一点?在

任何建议都会很有帮助。谢谢。在


Tags: 实例run网络webappflask远程系统
1条回答
网友
1楼 · 发布于 2024-04-27 03:33:20

让A成为您连接的服务器。让B是您连接的服务器,据我所知,它有时是localhost。在

为什么B不能连接到A?在

1。安全设置

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

2。港口

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

0.0.0.0允许同一网络上的设备连接

自动的,是的。顺便说一下,这是您应该指向的IP,以便其他服务器也可以连接。所以在您的例子中,也要指向0.0.0.0。在

有必要使用Apache吗?在

不,Apache不是必需的。如果需要,可以持久化Flask开发服务器。(也就是说,您可以使用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

相关问题 更多 >