nginx access_by_lua не соблюдает lua_package_path

У меня есть обратный прокси-сервер nginx со следующим в nginx.config:

http {
  lua_package_path ";;$prefix/?.lua;?.lua;/etc/nginx/?.lua;/etc/nginx/resty/?.lua;";
}

а затем несколько мест на сервере:

 # xxx SERVICE
    location ~* ^/articles/?(.*) {

      proxy_ignore_client_abort on;

      include cors.conf;

      access_by_lua_file nginx_v4.lua;}

Я запускаю этот Centos 7 с конфигурацией nginx и lua в /etc/nginx/, и это то, что я указываю в своем пути к пакету lua. Когда я запускаю nginx, он отлично работает для импорта файлов lua (найдите его в lua_package_path), но по какой-то причине, когда я запускаю службу xxx, происходит сбой со следующим:

> 2016/10/11 16:37:21 [notice] 19300#0: getrlimit(RLIMIT_NOFILE):
> 1024:4096 2016/10/11 16:37:21 [notice] 19301#0: start worker processes
> 2016/10/11 16:37:21 [notice] 19301#0: start worker process 19303
> 2016/10/11 16:37:25 [error] 19303#0: *1 failed to load external Lua
> file "/usr/share/nginx/nginx_v4.lua": cannot open
> /usr/share/nginx/nginx_v4.lua: No such file or directory, client:
> 10.1.104.135, server: localhost, request: "GET /content/search?filter.search_string=goog HTTP/1.1", host: "x.x.x.x"
> 2016/10/11 16:37:41 [info] 19303#0: *2 client closed connection while
> waiting for request, client: 10.1.104.135, server: 0.0.0.0:443

по какой-то причине он ищет в /usr/share/nginx файл lua, который на самом деле находится в /etc/nginx: **file "/usr/share/nginx/nginx_v4.lua": не может быть открыт

/usr/share/nginx/nginx_v4.lua: Нет такого файла или каталога**

Любая идея, почему? Это не работает, пока я не запрограммирую путь.


person Scooby    schedule 12.10.2016    source источник


Ответы (1)


lua_package_path — это место, где lua ищет библиотеки, а не место, где nginx ищет файлы lua.

Вы можете изменить «access_by_lua_file» на «access_by_lua» с помощью «require «nginx_v4»», или вы можете изменить расположение файла Lua, или путь, по которому nginx ищет конфигурацию, используя параметр запуска «-p /path/».

person Chris Tanner    schedule 12.10.2016