我一直关注Web Frameworks Benchmark,并注意到许多Web框架遭受相同的性能损失,即他们在框架内部进行HTTP路由,而不是利用NGINX的高性能HTTP服务器进行路由.
例如,在Flask python框架中,您可能具有:
@app.route('/add', methods=['POST'])
def add_entry():
...
这使得您的应用程序比直接在NGINX配置文件中更容易遵循,如下所示:
server {
listen 80;
server_name example.com;
location /add {
... // defer to Flask (python) app
}
问题:如何获得NGINX内置HTTP路由的性能(使用NGINX自己的配置文件来定义路由),同时通过在Web框架中定义HTTP路由来保持应用程序开发的简单性?
有没有办法可以从INSERT_NAME_OF_YOUR_WEBFRAMEWORK HTTP路由动态加载到NGINX?
解决方法:
我不知道一个准备好使用的库.但是编写一个脚本似乎很容易,该脚本从应用程序的路由生成Nginx配置文件(例如,在应用程序设置期间).使用Nginx config的“include”命令可以将此文件包含到服务器的主配置中:
server {
listen 80;
server_name example.com;
include /path/to/application/routes.conf
}