是否可以使用nginx调用外部脚本并检索输出?

时间:2013-12-19 14:41:54

标签: python shell nginx webserver external-process

我的网站在/search/有搜索功能。对于nginx捕获的每个搜索请求,我想运行一个Python脚本,并且根据所述脚本的输出,nginx的行为会有所不同,无论是退出代码还是标准输出。这样的事情(伪代码):

location ~* "/search/(.*)" {
    set redirect_request = call "/usr/bin/python /home/me/script.py $1";

    if ($redirect_request = 1) {
        rewrite ^ /page;
    }
}

nginx有什么可能吗?

1 个答案:

答案 0 :(得分:0)

据我所知,一般简短的答案是否定的。我想要找到一种方法来保持Nginx非阻塞这种一般类型的外部呼叫是非常困难的。

但是,您可以使用Lua“编写”Nginx脚本。 http://wiki.nginx.org/HttpLuaModule 你会在网上找到很多教程,开发时间很短。有一个专门用于此的模块,遵循nginx哲学。