Lua-resty-auto-ssl: دليل الترقية

تم إنشاؤها على ١ يوليو ٢٠١٩  ·  11تعليقات  ·  مصدر: auto-ssl/lua-resty-auto-ssl

كيفية الترقية إلى أحدث إصدار؟ هل يتوفر دليل ترقية؟

التعليق الأكثر فائدة

bryanus الرجاء تجربة هذا الرمز:

init_by_lua_block {
    auto_ssl = (require "resty.auto-ssl").new()
    auto_ssl:set("allow_domain", function(domain)

    -- reading from domains.txt and in testing

    local shell_execute = require "resty.auto-ssl.utils.shell_execute"
    local ngx_re = require "ngx.re"
    local result, err = shell_execute({"cat", "/home/user/domains.txt"})

    if err then
      ngx.log(ngx.ERR, "allow_domain cat error: ", err)
    else
      local domains = ngx_re.split(result["output"], "\n")
      for _, d in ipairs(domains) do
        if (domain == d) then
          return true
        end
      end
    end

    return false

    end)
    auto_ssl:set("renew_check_interval", 43200)
    auto_ssl:init()
  }

تفسير:

الالتزام https://github.com/GUI/lua-resty-auto-ssl/commit/59758847b44981edfaf484d3a981deea82409332 نفذ الإصدار الجديد من https://github.com/GUI/lua-shell-games لـ lua-resty-auto-ssl هنا.

لتلخيص ذلك ، تغيرت واجهة برمجة التطبيقات للوظيفة shell_execute() (المعلمات بالإضافة إلى قيم الإرجاع).

أنا شخصياً أجد تصحيح أخطاء كود Lua في Nginx كابوسًا. ربما يوما ما سيكون أسهل.

ال 11 كومينتر

أنا مهتم أيضًا بمزيد من المعلومات حول كيفية إجراء الترقية من 0.12.0 إلى 0.13.1.

هل أقوم فقط بتشغيل sudo luarocks install lua-resty-auto-ssl أم أن ذلك سيمحو إعدادات التهيئة / الإعداد الحالية التي تبلغ 0.12.0؟

أم أنه من الآمن تحديث الملف المجفف بالشكل الذي قدمه ronaldgetz ؟

TIA.

لقد أجريت الترقية من 12 إلى 13.1 ، الأمر بسيط مثل sudo luarocks install lua-resty-auto-ssl وإعادة فتح الصدق مع sudo systemctl restart openresty :)

شكرا aviatrix! لذا ، فقط لتأكيد أنه لم يستبدل تكوينات nginx أو أي شيء آخر؟ لدي الكثير يحدث في بلدي.

لقد اختبرت للتو إصدار مجال جديد ، ولم أواجه أي أخطاء ، لذلك لست واضحًا تمامًا بشأن ما يصلح هذا أو ما إذا كنت متأثرًا؟ لكني أفترض أنني يجب أن أقوم بالترقية على أي حال ...

bryanus دائما عمل نسخ احتياطية قبل القيام بأي شيء! لقد تعلمت هذا بالطريقة الصعبة.
إذا كان لديك تكوينات ، فاحتفظ بها في التحكم في الإصدار في ملف إعادة الشراء الخاص & cp مجلد conf مسبقًا في حالة حدوث ذلك.

يعالج هذا التحديث (13.1) إهمال بروتوكول v1 ACME بواسطة Let's Encrypt عن طريق تحديث التبعية Dehydrated التي تُستخدم للتواصل مع خوادم Let's Encrypt. إذا لم تقم بالتحديث ، فلن تتمكن من الحصول على شهادات جديدة في غضون شهر أو نحو ذلك.

شكرا aviatrix! سأجربه وأعد تقريرًا هنا.

ييكيس. شغّل أمر الترقية / التثبيت وكسر الإعداد فورًا عند إعادة تشغيل openresty:

2019/11/08 21:06:23 [error] 2973#2973: *113 [lua] ssl_certificate.lua:310: ssl_certificate(): auto-ssl: failed to run do_ssl: /usr/local/openresty/luajit/share/lua/5.1/shell-games.lua:233: bad argument #1 (table expected, got string), context: ssl_certificate_by_lua*, client: 103.3.244.23, server: 0.0.0.0:443

لحسن الحظ ، كان هذا على خادم مرحلي لذا أحاول حاليًا استكشاف هذا الخطأ وإصلاحه. أي أفكار @ أفياتريكس؟ أتساءل عما إذا كان بإمكاني فقط تصحيح تعديلات السطر ومعرفة ما إذا كان ذلك يحافظ على عمل الأشياء.

تحديث: حتى الآن ، قمت ببساطة بتحرير الملف المجفف مباشرة باستخدام تصحيح ronaldgetz ، وكل شيء يعمل بعد إعادة تشغيل openresty. قد تضطر إلى إبقائي أثناء محاولتي اكتشاف الخطأ الذي حصلت عليه عند إجراء الترقية الكاملة. نأمل أن التصحيح "جيدة بما فيه الكفاية"؟

bryanus هل ربما تستخدم وظيفة مخصصة لقائمة المجال البيضاء؟ قد تكون هذه الوظيفة المخصصة هي المشكلة لأن الإصدار الأخير من lua-resty-auto-ssl يستخدم طريقة مختلفة لتمرير وسيطات shell (على سبيل المثال إذا قمت باستدعاء الأمر cat لتحميل ملف نصي مخصص كقائمة بيضاء). يجب أن تكون وسيطات shell الآن جدولاً بدلاً من سلسلة نصية من قبل. مجرد تخمين من العدم ، لأنني رأيت هذه المشكلة أيضًا في عملية نشر واحدة.

تضمين التغريدة هذا بالضبط ما أفعله! أقوم بإدراج المجالات في القائمة البيضاء من ملف نصي أبدي في التكوين الخاص بي:

""
init_by_lua_block {
auto_ssl = (تتطلب "resty.auto-ssl"). new ()
auto_ ssl: مجموعة ("allow_domain" ، الوظيفة (المجال)

-- reading from domains.txt and in testing

local shell_execute = require "resty.auto-ssl.utils.shell_execute"
local ngx_re = require "ngx.re"
local status, output, err = shell_execute("cat /home/user/domains.txt")

if err then
  ngx.log(ngx.ERR, "allow_domain cat error: ", err)
else
  local domains = ngx_re.split(output, "\n")
  for _, d in ipairs(domains) do
    if (domain == d) then
      return true
    end
  end
end

return false

end)
auto_ssl:set("renew_check_interval", 43200)
auto_ssl:init()

}
""

هل كنت تفعل نفس الشيء؟ أنا في حيرة من أمري حول كيفية هيكلة أوامر shell الخاصة بي لتمريرها كجدول. سأضطر إلى البحث أكثر في الوثائق حول هذا الموضوع. كيف حل لك؟ شكرا جزيلا على هذه المعلومة!

bryanus الرجاء تجربة هذا الرمز:

init_by_lua_block {
    auto_ssl = (require "resty.auto-ssl").new()
    auto_ssl:set("allow_domain", function(domain)

    -- reading from domains.txt and in testing

    local shell_execute = require "resty.auto-ssl.utils.shell_execute"
    local ngx_re = require "ngx.re"
    local result, err = shell_execute({"cat", "/home/user/domains.txt"})

    if err then
      ngx.log(ngx.ERR, "allow_domain cat error: ", err)
    else
      local domains = ngx_re.split(result["output"], "\n")
      for _, d in ipairs(domains) do
        if (domain == d) then
          return true
        end
      end
    end

    return false

    end)
    auto_ssl:set("renew_check_interval", 43200)
    auto_ssl:init()
  }

تفسير:

الالتزام https://github.com/GUI/lua-resty-auto-ssl/commit/59758847b44981edfaf484d3a981deea82409332 نفذ الإصدار الجديد من https://github.com/GUI/lua-shell-games لـ lua-resty-auto-ssl هنا.

لتلخيص ذلك ، تغيرت واجهة برمجة التطبيقات للوظيفة shell_execute() (المعلمات بالإضافة إلى قيم الإرجاع).

أنا شخصياً أجد تصحيح أخطاء كود Lua في Nginx كابوسًا. ربما يوما ما سيكون أسهل.

شكراandreasschroth. كنت أقوم بمراجعة بناء الجملة لوحدة lua-resty-shell واعتقدت أنه لا يمكن أن يكون التغيير بهذه البساطة. شكرا لأخذ الوقت لمساعدتي. سأعطيها فرصة (غدًا على الأرجح) وأعيد الإبلاغ!

إنها تعمل! شكرا لمساعدتكمandreasschroth. لم أدرك أنك قمت أيضًا بتعديل مخرجاتي الشرطية ؛ أكثر مشاركة مما اعتقدت في البداية. نعم ، تصحيح أخطاء Lua في تكوينات nginx أمر مؤلم ، لكنه ليس سيئًا مع بعض المساعدة الرائعة! هتافات! ؛-)

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات