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("/")';
Я бы предпочел использовать только одно "местоположение" вместо использования перенаправления, но по крайней мере у меня есть кое-что, что, кажется, работает. Улучшения приветствуются.