Nginx: Как отправить клиенту результат скрипта Python? - PullRequest
0 голосов
/ 04 ноября 2019

У меня есть простой скрипт на python: генерирует x-icon из заданного ему шестнадцатеричного цвета, затем возвращает действительный поток байтов (BytesIO).

Я хочу получить что-то вродеэто (пожалуйста, не смейтесь, я использую Nginx около двух дней):

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

Возможно ли это вообще?

1 Ответ

1 голос
/ 07 ноября 2019

Следующий конфиг должен работать:

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 для этого решенияработать

...