vcl_synthでは、修正されたエラーページを作成しようとしています。私はこれをvcl_backend_errorに移すかもしれませんが、問題は同じままであるので、それは疑問です。私はCentOS 7を使用しているので、4.1ではなく4.0へのアクセス権しか持たない。 std.file_existsは> = 4.1にのみ存在するため、これは重要です。前方互換性/後方互換性を損なう、信頼できない、テストされていないソースからのパッケージを使用することは容認できません。ワニス4にはどのような変数が設定されていますか?
503.htmlファイルが存在しない可能性のある問題を処理するには、合成出力をテストしたい場合、null/emptyがフォールバックエラーページを生成する場合は、デバッグのために、すべての出力をsyslogに投げています。これは現在の形で生産には適用されません。
サンプル:I以上により
sub vcl_synth {
if (resp.status == 503) {
set resp.http.Content-Type = "text/html; charset=utf-8";
synthetic(std.fileread("/var/www/vhost/" + req.http.host + "/error/503.html"));
std.syslog(3, "resp.http.body: " + resp.http.body);
return (deliver);
}
}
は明らかにresp.http.bodyが空であることがわかりますが、ページが私のブラウザに返され、レンダリングされます。それで、もしそうなら、どの変数が合成セットをしますか?そして、それはテストすることができますか?
# journalctl -f
...
Sep 08 02:17:17 REDACTED_HOSTNAME varnishd[32498]: resp.http.body:
HALP plsはvcl_synth
中synthetic(...)
の
あなたは私にインスピレーションを与えました。 filereadを変数として設定し、変数をテストしてnullの場合を処理します。いくつかの作業コードがあると、元の投稿を更新します。 muchas graciasseñor:) – Phil