Bagaimana cara mengupgrade ke versi terbaru? Adakah panduan peningkatan yang tersedia?
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! ;-)
Komentar yang paling membantu
@bryanus Silakan coba kode ini:
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.