如何让一个Flask应用监听两个不同的端口?
有没有可能让一个Flask应用在两个不同的端口上运行不同的路由?我的Flask应用需要接收网络钩子(webhooks),但由于一些安全原因,它不能在默认端口上接收外部的POST请求。这样做有可能吗?
@app.route('/hook/<sourcename>', methods=["POST"], port=5051)
def handle_hook(sourcename):
print 'asdf'
2 个回答
7
如果你在C插件里不需要任何套接字代码,使用gevent可能会对你有帮助,比如说:
import gevent
from gevent.pywsgi import WSGIServer
app = Flask(__name__)
https_server = WSGIServer((HOST, HTTPS_PORT), app, keyfile=PRIVKEY, certfile=CERT)
https_server.start()
http_server = WSGIServer((HOST, HTTP_PORT), app)
http_server.start()
while True:
gevent.sleep(60)
1
一个服务器默认只会监听一个端口。既然额外的端口需要额外的功能,那在第二个端口上实现一个前端服务器来本地代理POST请求不是更合理吗?有很多文档详细介绍了如何做到这一点,比如这个方法。