我有一个用例,需要通过flask从同一服务器运行多个python脚本。
script1.py
如下
app = Flask(__name__)
api = Api(app)
class App(Resource):
def post(self):
resp = Response('successfully tested')
return(resp)
api.add_resource(App, '/testapp')
if __name__ == "__main__":
app.run(port=6000, host="0.0.0.0", use_reloader=True)
类似地,script2.py
是
app = Flask(__name__)
api = Api(app)
class Test(Resource):
def post(self):
resp = Response('successfully tested')
return(resp)
api.add_resource(Test, '/test')
if __name__ == "__main__":
app.run(port=5000, host="0.0.0.0", use_reloader=True)
单独地,当我按预期执行这两个工作时,http://0.0.0.0:5000/test
和http://0.0.0.0:5000/testapp
工作。
但当我将这些脚本配置为服务并尝试发布URL时,其中一个会工作,另一个会失败。
我做得对吗?
您不能这样做,因为flask服务器需要绑定到端口[5000]。您必须在不同的端口上运行这两个脚本,然后可以使用Nginx根据API规则代理传递它们。低于
https://serverfault.com/questions/650117/serving-multiple-proxy-endpoints-under-location-in-nginx您可以使用任何其他反向代理,也可以不必使用Nginx。