2

Symfony 2.3 アプリは、ポート 80 を介して nginx を使用する Web サーバー上にあります。Varnish4 は、SSL ターミネーターとしてポート 443 上の Nginx を使用して、ポート 80 上のフロントエンド サーバー上で実行されています。これは Varnish3 でもテストされ、同じ結果が得られました。ほとんどの場合、これは非常にうまく機能します。

数分後、一部の ESI は完全な Symfony テンプレートで 403 Forbidden エラーを返します。これは、キャッシュされたフラグメントの有効期限が切れたときに発生していると思います。

次の方法で問題を強制できます。

  1. Varnish を再起動してキャッシュをクリアする
  2. HTTP 経由でページをロードする (すべて OK)
  3. HTTPS 経由でページを読み込んでいます (すべて OK)
  4. 一部の ESI がキャッシュから期限切れになるのを待っています
  5. HTTPS 経由でページを読み込んでいます (ここでエラーが発生します)
  6. HTTP 経由でページをロード中 (すべて OK)

また、手順 2 を HTTPS で実行し、手順 5 を HTTP で実行して、問題を強制することもできます。

したがって、この問題は元のページのプロトコルと一致しない ESI プロトコルに関連していると考えられます。誰かが以前にこの問題に遭遇したことがありますか、または診断/修正を助けることができますか?

信頼できるプロキシは 403 禁止エラーの最大の原因ですが127.0.0.1、フロントエンド サーバーの IP アドレスを の信頼できるプロキシ リストに追加しましたapp/config/config.yml。信頼できるプロキシのリストを削除すると、状況がさらに悪化することを確認できます。

4

0 に答える 0