Nginx:如何将 Python 脚本的结果发送给客户端?

Nginx: How to Send to Client Result of a Python Script?

我有一个简单的 python 脚本:从给定的十六进制颜色生成 x-icon,然后它 returns 一个有效的字节流(BytesIO ).

我想得到这样的东西(请不要笑,我使用Nginx大约两天):

location ~^/icons/(?<colour>[a-fA-F0-9]{6})\.ico$ {
    send 200 (./favicon.py colour); # System call to `favicon.py` with `colour` argument.
}

有可能吗?

以下配置应该可以完成工作:

location ~^/icons/(?<colour>[a-fA-F0-9]{6})\.ico$ {
    content_by_lua '
        local command = "./favicon.py colour"
        local handle = io.popen(command)
        local content = handle:read("*a")
        handle:close()
        ngx.print(content)
    ';
}

基本上它使用Lua来执行和提供内容

注意:您的 nginx 应该使用 lua 模块编译才能使此解决方案工作