最新バージョンにアップグレードするにはどうすればよいですか? 利用可能なアップグレードガイドはありますか?
0.12.0から0.13.1へのアップグレードを実行する方法についての詳細にも興味があります。
sudo luarocks install lua-resty-auto-ssl
を実行するだけですか、それとも現在の0.12.0 configs / setupを消去しますか?
または、 @ ronaldgetzが提供しているように、脱水されたファイルを更新する方が安全ですか?
TIA。
私は12から13.1にアップグレードしました。それは、 sudo luarocks install lua-resty-auto-ssl
と同じくらい簡単で、 sudo systemctl restart openresty
でopenrestyを再起動します:)
ありがとう@aviatrix! それで、それがあなたのnginx構成または何かを上書きしなかったことを確認するためだけに? 私は私の中でたくさんのことが起こっています。
新しいドメインの発行をテストしたところ、エラーは発生しなかったので、これが何を修正するのか、または影響を受けるのかどうかは完全にはわかりません。 しかし、とにかくアップグレードする必要があると思います...
@bryanusは、何かをする前に常にバックアップを作成します。 私はこれを難しい方法で学びました。
構成がある場合は、万が一の場合に備えて、事前にプライベートリポジトリのバージョン管理に保持し、confフォルダーをcpします。
この更新(13.1)は、Let'sEncryptサーバーとの通信に使用される依存関係Dehydrated
を更新することにより、Let'sEncryptによるv1ACMEプロトコルの非推奨に対処します。 更新しないと、1か月ほどで新しい証明書を取得できなくなります。
ありがとう@aviatrix! 試してみて、ここに報告します。
うわぁ。 upgrade / installコマンドを実行すると、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
幸い、これはステージングサーバー上にあったため、現在このエラーのトラブルシューティングを試みています。 @aviatrixのアイデアはありますか? 行編集にパッチを適用して、それで問題が解決するかどうかを確認できるかどうか疑問に思います。
更新:今のところ、 @ ronaldgetzのパッチを使用して脱水ファイルを直接編集しただけで、openrestyを再起動するとすべてが機能します。 完全なアップグレードを行ったときに発生したエラーを理解しようとしている間、私を引き留めなければならない場合があります。 うまくいけば、パッチは「十分に良い」ですか?
@bryanusドメインホワイトリストにカスタム関数を使用しますか? lua-resty-auto-sslの最新リリースでは、シェル引数を渡すために別の方法を使用しているため、このカスタム関数が問題になる可能性があります(たとえば、catコマンドを呼び出してカスタムテキストファイルをホワイトリストとしてロードする場合)。 シェル引数は、以前は文字列ではなくテーブルである必要があります。 1回の展開でもその問題が発生したため、どこからともなく推測できます。
@andreasschrothうわー! それはまさに私がしていることです! 構成内の永遠のテキストファイルからドメインをホワイトリストに登録しています:
`` ``
init_by_lua_block {
auto_ssl =( "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 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()
}
`` ``
同じことをしていましたか? テーブルとして渡されるシェルコマンドを構造化する方法について少し混乱しています。 これに関するドキュメントをさらに掘り下げる必要があります。 どのように解決しましたか? このヒントをありがとうございました!
@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/59758847b44981edfaf484d3a981deea82409332lua-resty-auto-sslの新しいバージョンのhttps://github.com/GUI/lua-shell-gamesを実装しましたここ。
要約すると、関数shell_execute()
のAPIが変更されました(パラメーターと戻り値)。
個人的には、NginxでのLuaコードのデバッグは非常に悪夢だと思います。 多分いつかそれはもっと簡単になるでしょう。
@andreasschrothに感謝します。 lua-resty-shellモジュールの構文を確認していたところ、それほど単純な変更ではないことがわかりました。 私を助けるために時間を割いてくれてありがとう。 私はそれにショットを与え(おそらく明日)そして報告します!
できます! @andreasschrothにご協力いただきありがとうございます。 あなたが私の条件付き出力も変更したことに気づいていませんでした。 私が最初に思ったよりももっと複雑でした。 はい、nginx configsでLuaをデバッグするのは苦痛ですが、大きな助けがあればそれほど悪くはありません! 乾杯! ;-)
最も参考になるコメント
@bryanusこのコードを試してください:
説明:
コミットhttps://github.com/GUI/lua-resty-auto-ssl/commit/59758847b44981edfaf484d3a981deea82409332lua-resty-auto-sslの新しいバージョンのhttps://github.com/GUI/lua-shell-gamesを実装しましたここ。
要約すると、関数
shell_execute()
のAPIが変更されました(パラメーターと戻り値)。個人的には、NginxでのLuaコードのデバッグは非常に悪夢だと思います。 多分いつかそれはもっと簡単になるでしょう。