Nginx, как запустить сценарий оболочки при загрузке страницы через модуль lua или выполнить, а затем обслуживать список каталогов?

Итак, у меня есть bash-скрипт, который я хочу выполнять / запускать при каждой "загрузке страницы" URL, чтобы он изменял (создавая символические ссылки) на /public/html/ папка, которую я хочу, чтобы сервер затем обслуживал.

Проблема в том, что я понял, как сделать одно или другое, а не оба.

Я могу показать каталог с корнем nginx /public/html/ и т.д. или я могу запустить скрипт, имея вместо root /public/html/ имеющий:

content_by_lua("/myscript.sh")';

Но если я использую контент от lua, скрипт запускается и создает то, что мне нужно внутри /public/html но тогда Nginx просто показывает пустой экран. Я хочу, чтобы nginx действительно показывал список каталогов /public/html после запуска myscript.sh с помощью content_by_lua,

Я только начал использовать nginx из-за этой задачи, и я не знаю, как это сделать, я искал, но это не простой вопрос для фразы для Google или здесь.

1 ответ

Решение

Может я просто разобрался? Я добавил ngx.redirect("/"); Итак, у меня есть / with location /public/html/ в моем nginx.conf, а также:

    location /lua {
    default_type text/plain;
    content_by_lua '
    os.execute("/myscript.sh")
    return ngx.redirect("/")';

Я бы предпочел использовать только одно "местоположение" вместо использования перенаправления, но по крайней мере у меня есть кое-что, что, кажется, работает. Улучшения приветствуются.

Другие вопросы по тегам