Lua-resty-auto-ssl: Panduan peningkatan

Dibuat pada 1 Jul 2019  ·  11Komentar  ·  Sumber: auto-ssl/lua-resty-auto-ssl

Bagaimana cara mengupgrade ke versi terbaru? Adakah panduan peningkatan yang tersedia?

Komentar yang paling membantu

@bryanus Silakan coba kode ini:

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()
  }

Penjelasan:

Komit https://github.com/GUI/lua-resty-auto-ssl/commit/59758847b44981edfaf484d3a981deea82409332 mengimplementasikan versi baru https://github.com/GUI/lua-shell-games untuk lua-resty-auto-ssl di sini.

Singkatnya, API dari fungsi shell_execute() berubah (parameter serta mengembalikan nilai).

Secara pribadi, saya menemukan men-debug kode Lua di Nginx menjadi mimpi buruk. Mungkin suatu saat akan lebih mudah.

Semua 11 komentar

Saya juga tertarik dengan beberapa informasi lebih lanjut tentang cara melakukan peningkatan dari 0.12.0 ke 0.13.1.

Apakah saya hanya menjalankan sudo luarocks install lua-resty-auto-ssl atau apakah itu akan menghapus konfigurasi/pengaturan 0.12.0 saya saat ini?

Atau lebih aman memperbarui file dehidrasi seperti yang disediakan @ronaldgetz ?

TIA.

saya telah melakukan upgrade dari 12 ke 13.1, semudah sudo luarocks install lua-resty-auto-ssl dan restart openresty dengan sudo systemctl restart openresty :)

Terima kasih @aviatrix! Jadi, hanya untuk mengonfirmasi bahwa itu tidak menimpa konfigurasi nginx Anda atau apa? Saya memiliki banyak hal yang terjadi dalam diri saya.

Saya baru saja menguji mengeluarkan domain baru, dan tidak mengalami kesalahan apa pun, jadi saya tidak sepenuhnya jelas tentang apa yang diperbaiki ini atau apakah saya terpengaruh? Tapi saya kira saya harus meng-upgrade pula...

@bryanus selalu buat backup sebelum melakukan apapun! Saya telah belajar ini dengan cara yang sulit.
Jika Anda memiliki konfigurasi, simpan dalam kontrol versi di repo pribadi & cp folder conf sebelumnya untuk berjaga-jaga.

Pembaruan ini ( 13.1) membahas penghentian protokol ACME v1 oleh Let's Encrypt dengan memperbarui dependensi Dehydrated yang digunakan untuk berkomunikasi dengan server Let's Encrypt. Jika Anda tidak memperbarui, Anda tidak akan bisa mendapatkan sertifikat baru dalam waktu sekitar satu bulan.

Terima kasih @aviatrix! Saya akan mencobanya dan melaporkan kembali ke sini.

Astaga. Jalankan perintah upgrade/install dan itu segera merusak pengaturan saya setelah memulai ulang 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

Untungnya ini ada di server pementasan jadi saya saat ini mencoba memecahkan masalah kesalahan ini. Ada ide @aviatrix? Saya ingin tahu apakah saya bisa menambal suntingan baris dan melihat apakah itu membuat semuanya berfungsi.

Pembaruan: Jadi untuk saat ini, saya cukup mengedit file dehidrasi langsung dengan tambalan @ronaldgetz , dan semuanya berfungsi setelah memulai ulang openresty. Mungkin harus menahan saya saat saya mencoba dan mencari tahu kesalahan yang saya dapatkan saat melakukan peningkatan penuh. Semoga tambalannya "cukup baik"?

@bryanus Apakah Anda mungkin menggunakan fungsi khusus untuk daftar putih domain? Fungsi kustom ini mungkin menjadi masalah karena rilis terbaru lua-resty-auto-ssl menggunakan cara berbeda untuk meneruskan argumen shell (misalnya jika Anda memanggil perintah cat untuk memuat file teks kustom sebagai daftar putih). Argumen shell sekarang harus berupa tabel, bukan string sebelumnya. Hanya menebak entah dari mana, karena saya melihat masalah itu juga dalam satu penerapan.

@andreasschroth Wow! Itulah yang saya lakukan! Saya memasukkan domain ke daftar putih dari file teks abadi di konfigurasi saya:

````
init_by_lua_block {
auto_ssl = (memerlukan "resty.auto-ssl").new()
auto_ ssl:set ("allow_domain", fungsi(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()

}
````

Apakah Anda melakukan hal yang sama? Saya agak bingung bagaimana menyusun perintah Shell saya untuk diteruskan sebagai tabel. Saya harus menggali lebih dalam dokumentasi tentang ini. Bagaimana Anda menyelesaikan masalah Anda? Terima kasih banyak untuk tip ini!

@bryanus Silakan coba kode ini:

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()
  }

Penjelasan:

Komit https://github.com/GUI/lua-resty-auto-ssl/commit/59758847b44981edfaf484d3a981deea82409332 mengimplementasikan versi baru https://github.com/GUI/lua-shell-games untuk lua-resty-auto-ssl di sini.

Singkatnya, API dari fungsi shell_execute() berubah (parameter serta mengembalikan nilai).

Secara pribadi, saya menemukan men-debug kode Lua di Nginx menjadi mimpi buruk. Mungkin suatu saat akan lebih mudah.

Terima kasih @andreasschroth. Saya sedang meninjau sintaks untuk modul lua-resty-Shell dan menemukan bahwa perubahannya tidak sesederhana itu. Terima kasih telah meluangkan waktu untuk membantu saya. Saya akan mencobanya (kemungkinan besok) dan melaporkan kembali!

Berhasil! Terima kasih atas bantuan Anda @andreasschroth. Saya tidak menyadari bahwa Anda juga memodifikasi keluaran bersyarat saya; lebih terlibat daripada yang saya pikir pertama. Ya, men-debug Lua dalam konfigurasi nginx memang menyakitkan, tetapi tidak terlalu buruk dengan bantuan yang luar biasa! Bersulang! ;-)

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

n11c picture n11c  ·  13Komentar

domharrington picture domharrington  ·  7Komentar

stackrainbow picture stackrainbow  ·  20Komentar

arya6000 picture arya6000  ·  11Komentar

ronaldgetz picture ronaldgetz  ·  10Komentar