2013-05-06 36 views
4

我一直在关注的Web Frameworks Benchmark,并已注意到,一些Web框架的来自同一性能损失受苦,那是他们的HTTP路由框架本身,而不是利用NGINX到具有高性能的HTTP服务器做路由。如何从您的web框架动态加载HTTP路由到NGINX中?

例如,在Flask蟒蛇框架,你可能有:

@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自己的配置文件来定义路由)的路由,同时也可为k通过在您的Web框架中定义HTTP路由来轻松实现应用程序开发的轻松过程?

有没有什么建议可以动态地从INSERT_NAME_OF_YOUR_WEBFRAMEWORK的HTTP路由装入NGINX的方式?

回答

2

我不知道现成的图书馆。但是编写一个脚本似乎很容易,它会根据应用程序的路线生成一个Nginx配置文件(例如,在应用程序设置过程中)。这个文件可以使用Nginx config的“include”命令包含在服务器的主要配置中:

server { 
    listen 80; 
    server_name example.com; 

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

这是一个很好的答案。但是nginx服务器仍然需要重新加载... – JBernardo 2014-02-02 04:31:54

+0

我想,仅在生产环境中需要它,效率很重要。因此,在部署新版本的应用程序时重新启动Nginx并不是问题。 – 2014-02-02 08:57:12

+1

有重新加载nginx的配置,无需重新启动整个服务器的方式:http://serverfault.com/questions/108261/how-to-make-modification-take-affect-without-restart-nginx – 2014-02-04 10:40:47