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