Welcome! Log In Create A New Profile

Advanced

nginx + lua

xnt
August 25, 2015 01:56PM
  Добрый день!

Заметил странное. Использую nginx-1.8 и lua5.1

На уровне http, указан access_by_lua_file, некоторый обработчик,
который помимо прочего ведет статистику запросов.
Однако, если в конфигурации какого-либо вирт-хоста, указан
локейшен с кодом возврата, то этот запрос идет мимо обработчика access_by_lua_file.
Т.Е, вообще.
К примеру

server {
 server_name sample.org;
 location /test/ {
   return 410;
 }
... скип ...

в этом случае /test/ вообще не пройдет через access_by_lua_file :(
И обращение к sample.org/test/ мы не учтем.

Еще хотелось бы узнать, возможно ли в lua получить какие-то параметры загруженного
файла конфигурации nginx-а? Вроде ngx.config но не параметры сборки, а параметры из
текущего загруженного конфига nginx.conf.

Вопрос встал, когда возникла необходимость
в обработчике lua вести свой лог.
При проверке конфигурации
nginx -t -c /etc/nginx/nginx.conf

происходит инициализация lua модуля, создается файл лога.
Но вот проверка конфига идет с правами рута.
Соответственно, и файл лога получает владельца - рута.
А после рестарта nginx-а, воркер меняет пользователя (обычно на www-data в debian/ubuntu ),
и модуль lua после рестарта не может записать в свой лог.

Найти возможность получить параметр user из конфига nginx.conf стандартными средствами не удалось.
Пришлось завести еще один параметр в конфиг модуля lua (не парсить же nginx.conf самому)
Одинаковые параметры в разных конфигах - потенциальный источник ошибок imho
Тем более что в запущенном nginx-е эта инфа где-то есть наверняка, может быть я плохо искал.

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

nginx + lua

xnt August 25, 2015 01:56PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 279
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready