OpenResty auto_ssl слишком длинная ошибка блока кода lua

Я использую OpenResty с nginx для автоматического получения сертификатов SSL от Зашифруем. Есть функция lua, где вы можете разрешить определенные домены. В этой функции у меня есть регулярное выражение для внесения в белый список моих доменов. После того, как я добавляю определенную сумму (точно не знаю), я начинаю получать эту ошибку:

nginx: [emerg] too long lua code block, probably missing terminating characters in /usr/local/openresty/nginx/conf/nginx.conf:60. 

Сокращение этой строки приводит к исчезновению ошибки.

Я не знаком с lua, но вот пример кода. Мне нужно добавить сюда несколько сотен доменов.

auto_ssl:set("allow_domain", function(domain)
  return ngx.re.match(domain, "^(domain1.com|domain2.com|domain3.com....)$", "ijo")
end)

Нужно ли мне определять эту строку заранее или, может быть, где-то указать ее длину?

ИЗМЕНИТЬ хорошо, значит, я думал об этом по-другому. Кто-нибудь видит проблему, если я попробую это? Какие-то проблемы с производительностью или вещи, связанные с lua? Может быть, есть более эффективный способ сделать это?

auto_ssl:set("allow_domain", function(domain)
  domains = [[
    domain1.com
    domain2.com
    domain3.com
    -- continues up to domain300.com
  ]]
  i, j = string.find(domains, domain)
  return i ~= nil
end)

person jeremywoertink    schedule 10.11.2017    source источник
comment
Привет, какое решение у тебя получилось? Если вы загрузили внешний файл, как вы его назвали? ТИА.   -  person bryanus    schedule 23.02.2019
comment
В итоге я использовал регулярное выражение с return ngx.re.match(domain, "^(domain1.com|domain2.com)$", "ijo")   -  person jeremywoertink    schedule 02.03.2019


Ответы (1)


OpenResty позволяет загружать более сложный код lua через файлы. https://github.com/openresty/lua-nginx-module#init_by_lua_file Это всего лишь одна директива. Существует несколько способов загрузки кода lua. Этот способ работал для меня.

person Russ Smith    schedule 12.03.2018