4

我一直在关注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 路由来保持应用程序开发的简单性?

有没有一种方法可以将 HTTP 路由从 INSERT_NAME_OF_YOUR_WEBFRAMEWORK 动态加载到 NGINX 中?

4

1 回答 1

2

我不知道准备使用的库。但是编写一个脚本似乎很容易,它从应用程序的路由生成一个 Nginx 配置文件(例如,在应用程序设置期间)。可以使用 Nginx config 的“include”命令将此文件包含到服务器的主要配置中:

server {
    listen 80;
    server_name example.com;

    include /path/to/application/routes.conf
}
于 2014-02-01T14:31:24.423 回答