Назад | Перейти на главную страницу

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

Итак, у меня есть сценарий 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 или здесь.

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

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

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