如何从Web框架动态加载HTTP路由到NGINX?

时间:2013-05-06 15:51:27

标签: python http web-applications nginx routing

我一直在关注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路由?

1 个答案:

答案 0 :(得分:2)

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

server {
    listen 80;
    server_name example.com;

    include /path/to/application/routes.conf
}