1

Drupal6 の Mobile Tools モジュールを Varnish で使用できますか? ワニスがインデックス ページをキャッシュし、ページのモバイル バージョンへのリダイレクトを許可しないとは思えません。

回避策はありますか?

4

1 に答える 1

1

使用するデバイス/ブラウザに基づいて、サーバーが異なる応答を返すようにしたいと考えています。これは、使用されている User-Agent http 要求ヘッダーに基づいてページが「変化する」ことを意味します。理論的には、http を追加して User-Agent 文字列が同じである場合にのみ、間にある HTTP プロキシ/キャッシュにキャッシュされたバージョンのみを使用するように指示する必要があります。応答ヘッダー:

Vary: User-Agent

ただし、Internet Explorer などのブラウザー (Chrome とは異なります) は、わずかに異なる User-Agent ヘッダーを多数使用するため、キャッシュ ヒット率が完全に失われます。あなたの目的のために が、またはデスクトップ ブラウザーで使用されるその他のユーザー エージェント文字列Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)と等しいことを理解するには、よりスマートなキャッシュが必要です。Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.0; Trident/4.0; InfoPath.1; SV1; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 3.0.04506.30)

Varnish でこれを解決するには、次の 2 つのオプションがあります。

1: モバイル ツールが行うのと同じ方法で、ワニス ロジックでモバイル ユーザー エージェントの検出を自分で行います。例えば:

vcl_recv {
  if (req.http.user-agent ~ 'ipad|ipod|iphone|android|mini opera|blackberry|up.browser|up.link|mmp|symbian|smartphone|midp|wap|vodafone|o2|pocket|kindle|mobile|pda|psp|treo') {
    hash += "mobile"
  }
}

2: または、常にセッション cookie を設定するmobile=truemobile=false、最初のリクエストを確認した後に、この cookie を使用したリクエストに対してキャッシュされたページのみを提供します。

少しグーグルで調べた後、次を読む必要があります:http://fangel.github.com/mobile-detection-varnish-drupal/

于 2011-10-14T12:47:16.603 に答える