2
ワニスとターペンタイン
サーバーでVarnishを再起動すると、ユーザーのセッションが失われます。 これは、私の顧客がショッピングカートを紛失する順番です。 これはVarnishの正常な動作ですか、それとも私のVCLのせいですか?それはそうではないようです 詳細情報。 詳しい調査の結果、この問題はGitHubの問題#725に関連しているようです。 私のMagentoインストールはバージョン1.9.1.0です。フロントエンド全体がhttpsで実行されていることにも注意してください。SSLを終了するためにVarnishの前でPoundを使用しています。 このバージョンのデフォルトのMagentoの動作は、通常は「frontend_cid」と呼ばれるセカンダリフロントエンドCookieを作成するようです。これは、MITM攻撃に対してテストする試みです。 Turpentineによって生成されたVCLファイルがこのCookieを渡していないため、無効なセッションが発生しているようです。 Magentoがクライアントに送信するCookieをVCLファイルがどのように渡すかを誰かが説明できますか? これを必要なCookieを生成しないVarnishに絞り込みました。 Magento 1.9.1.0以降、MITM攻撃をブロックするために「frontend_cid」Cookieが導入されました。 これはMage_Core_Model_Session_Abstract_Varienクラスの135行目にあります if (Mage::app()->getFrontController()->getRequest()->isSecure() && empty($cookieParams['secure'])) { // secure cookie check to prevent MITM attack $secureCookieName = $sessionName . '_cid'; if (isset($_SESSION[self::SECURE_COOKIE_CHECK_KEY]) && $_SESSION[self::SECURE_COOKIE_CHECK_KEY] !== md5($cookie->get($secureCookieName)) ) { session_regenerate_id(false); $sessionHosts = $this->getSessionHosts(); $currentCookieDomain = $cookie->getDomain(); foreach (array_keys($sessionHosts) as $host) …