【发布时间】:2018-09-13 17:39:49
【问题描述】:
我正在尝试使用内置在远程 Linux 服务器上的 REST API 和 Connexion/Flask 运行一个简单的 Python 服务器(绑定到服务器公共 IP 地址),使用阿帕奇。 (服务器运行 Ubuntu 16.04.5 LTS,python 代码使用 Python 3.7 编写)
这里有一些用于服务器实现的文件:
server.py:
import connexion
app = connexion.App(__name__, specification_dir='./')
app.add_api('swagger.yml')
if __name__ == "__main__":
app.run(host='127.0.0.1', port=5000, debug=True)
swagger.yml:REST API 规范,我已经通过在 localhost 上运行对其进行了测试,它工作正常。 (基本路径是/api)
operations.py:API 的函数取决于响应
我的目标是在远程 Linux 服务器上运行服务器,任何知道服务器公共 IP 地址的人都可以调用 API。例如,如果公共 IP 地址是 xxx.xx.xx.xxx,那么用户应该能够调用以下 URL 来检索数据:
http://xxx.xx.xx.xxx:<port>/api/<operation_name>?<query_parameters>
到目前为止,我能够通过 SSH 端口转发 以及 从客户端调用 API(在服务器上的 localhost 上运行) strong>ngrok(他们提供到服务器 localhost 的隧道),但这些不是我想要的。
我是创建自己的 Web 服务器的新手,我一直在研究 Apache 以及它如何与 VirtualHosts 等一起工作,但我找不到如何准确地设置它以便将 python 服务器绑定到Linux 服务器的公共 IP 地址。
【问题讨论】:
标签: python linux apache flask server