ClusterユーザーのFull Page Cacheは、他のユーザーアカウントを表示できます


7

クラスターでフルページキャッシュをオンにすると、ユーザーは他のユーザーアカウントを表示できます。

私たちは、私たちは4つのウェブ頭を持っているデータベースにセッションを切り替え、フロントエンド上のデータベースサーバーMagentoのエンタープライズ1.13.1利用SIDに設定されたオブジェクトとFPCは今(別々のインスタンス)のためのRedisを使用しているNOの :NOTE私は2つの異なるRedisのインスタンスを使用しています2つの異なるポート。URLとポート番号をXXしました。この問題はREDISでは発生しません。FILESを使用した保存やテーマが異なるため、同じ問題が発生したためです。

FPC REDISインスタンスへのトラフィックを取得していることを確認しました(Object Rocketを使用しています)

   <session_save><![CDATA[db]]></session_save>
    <cache>
       <backend><![CDATA[Mage_Cache_Backend_Redis]]></backend>
        <backend_options>
        <server><![CDATA[xxxxxxxxxxxxxxxxxx.rackspaceclouddb.com]]></server>
       <port><![CDATA[xxx12]]></port>
        <database><![CDATA[0]]></database>
        <password>LikeIWillPublishthePassword</password>
       <force_standalone><![CDATA[0]]></force_standalone>
       <automatic_cleaning_factor><![CDATA[0]]></automatic_cleaning_factor> 
      <compress_data><![CDATA[1]]></compress_data>
      <compress_tags><![CDATA[1]]></compress_tags> 
      <compress_threshold><![CDATA[20480]]></compress_threshold>
      <compression_lib><![CDATA[gzip]]></compression_lib>
     <lifetimelimit><![CDATA[43200]]></lifetimelimit>
    </backend_options>
    </cache>

エンタープライズFPCに追加されたXMLは次のとおりです

<config>
    <global>
        <cache>
            <request_processors>
                <ee>Enterprise_PageCache_Model_Processor</ee>
            </request_processors>
            <frontend_options>
                <slab_size>1040000</slab_size>
            </frontend_options>
        </cache>
        <full_page_cache>
            <backend>Mage_Cache_Backend_Redis</backend>
            <backend_options>
            <server>7xxxxxxxxxxxxxxxxublb.rackspaceclouddb.com</server>  
              <port>xxxxxxxx31</port>
              <persistent></persistent>                 
           <database>0</database>  
               <password>SomePassword</password>
              <force_standalone>0</force_standalone>
              <connect_retries>1</connect_retries>    
              <lifetimelimit>57600</lifetimelimit> 
              <compress_data>0</compress_data>
            </backend_options>
         </full_page_cache>
    </global>
</config>

(私はFPCのInchooサンプルを使用しました)

何か忘れた場合はお知らせください。新しいエンタープライズファイルを公開した後、関連するすべてのXMLをWebヘッドが取得できなかった場合、

クライアントから編集:

私は最初にホームページで気づきましたが、実際に/ customer / accountをクリックして、他の人の最近の注文を見ることができました


1
彼らはどのようなコンテンツを見ていますか?cache.xmlファイルの内容も投稿できますか?個々のコンテナーブロックに対して生成されるキャッシュキーは、一意性が十分ではないようです。
Kevin Schroeder

他のユーザーアカウントを見ているユーザーがいます。すべてのキャッシュxmlファイルが投稿されます。おそらく、あなたが見たいものを私は見逃しているのでしょうか?
brentwpeterson 2015年

URLの例とは何で、どのようなコンテンツが表示されますか?
Kevin Schroeder、

1
私が間違っているが、顧客アカウントページがデフォルトでFPCから除外されていない場合は修正してください。HTTPSも?FPCが改造されていないことを確認しますか?
スケルター卿2015年

これはMagentoのコアバージョンです。新しいテーマをインストールしましたが、古いテーマでも同じ問題が発生しました。Magentoでチケットをオープンしました
brentwpeterson

回答:


2

Magentoサポートが答えを見つけました:問題

EEのインストールに関するCEテーマとそのすべてはテンプレートに関連していました。CEブロックにはFPCプレースホルダーがないため、一度キャッシュされ、他の顧客の前に共有されます。

コードを独立したブロックに移動し、「ようこそ」という名前を付けます。

Full Page Cacheブロックの構成によると、「Welcome」にはこのブロックをキャッシュしないプレースホルダーがあるため、このブロックは顧客ごとに一意です。

app / code / core / Enterprise / PageCache / etc / cache.xml(62〜67行目)

<welcome_message>
    <block>page/html_welcome</block>
    <placeholder>WELCOME</placeholder>
    <container>Enterprise_PageCache_Model_Container_Welcome</container>
    <cache_lifetime>86400</cache_lifetime>
</welcome_message>

たとえば、元のテンプレートでは:

app / design / frontend / enterprise / default / template / page / html / header.phtml(31〜35行目)

<div class="header-panel">
    <div class="switches"><?php echo $this->getChildHtml('switches') ?></div>
    <p class="welcome-msg"><?php echo $this->getChildHtml('welcome') ?></p>
    <?php echo $this->getChildHtml('accountLinks') ?>
</div>

つまり、ウェルカムブロックはヘッダーのブロックの子として使用されます。これは、app / design / frontend / enterprise / default / layout / page.xml(71〜88行目)であるためです。

 <block type="page/html_header" name="header" as="header">
 <block type="page/template_links" name="account.links" as="accountLinks"/>
                ...
 <block type="page/html_wrapper" name="top.container" as="topContainer" translate="label">
  <label>Page Header</label>
  <action method="setElementClass"><value>top-container</value></action>
  </block>
  <block type="page/html_welcome" name="welcome" as="welcome"/>
    </block>

1

これはいくつでもかまいませんが、除外する可能性のリストを次に示します。

  1. 次のように、カスタムブロックがEnterprise_PageCache構成に追加されていることを確認します。

    <!-- My_Module/etc/cache.xml -->  
    <config>  
        <placeholders>  
            <cart_sidebar>  
                <block>custom_module/cart_sidebar</block>
                <placeholder>CART_SIDEBAR</placeholder>
                <container>Enterprise_PageCache_Model_Container_Sidebar_Cart</container>
                <cache_lifetime>86400</cache_lifetime>
            </cart_sidebar>
        </placeholders>
    </config>  
  2. サードパーティのサービスがHTMLをキャッシュしていないことを確認します(SquixaのようなサービスはWebサイトをこのように加速することがあります)

  3. APCまたはZend OPcacheが有効になっている場合は、無効にしてみてください(最近、これに問題がありました)。

これらのどちらも答えを提供しません。REDISには異なるURLとポートがあり、例にはREDISが含まれていないことがわかります。CM_CACHEはXMLの古いバージョンです。FPCの例ではREDISの使用については触れていません。
brentwpeterson、2015年

うん、あなたは正しい、私はあなたの設定を読み違えた。ただし、バックエンドがで上書きされるため、私の設定ではRedisが使用されlocal.xmlます。エンタープライズサポートから返信はありますか?
jharrison.au 2015年

Magentoは問題を診断するためにSSH画面共有セッションを実行しています。結果が出たら、そこに結果を掲載します
brentwpeterson '28 / 01/15
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.