Come lo store Magento multi-lingua funziona con Varnish. Esiste qualche configurazione disponibile in varnish, quindi possiamo creare cache base sui cookies?Negozio Magento Multi laguage con vernice
risposta
Se non ti dispiace le lingue essere a diversi URL, trementina in grado di gestire questo per voi: https://github.com/nexcess/magento-turpentine/issues/36
se si vuole che si comportino come fanno fuori dalla scatola, lascia andare avanti.
si deve modificare il modo in vernice genera l'ha nel vostro VCL Riferimento: https://www.varnish-cache.org/trac/wiki/VCLExampleCachingLoggedInUsers
Vorremmo modificare questo anche prendere in considerazione il cookie negozio che insiemi Magento basano sulla selezione della lingua. (Seguendo il comportamento qui: http://demo.magentocommerce.com) Sfortunatamente questo diventa complicato poichè Varnish tende a non passare i cookie al server o non memorizzare nella cache quando vede i cookie volare intorno a
Questo avrebbe cache di Varnish basata sul valore del cookie così come l'URL predefinito e host:
sub vcl_hash {
hash_data(req.url);
hash_data(req.http.host);
if (req.http.Cookie ~ "(?:^|;\s*)(?:store=(.*?))(?:;|$)"){
hash_data(regsub(req.http.Cookie, "(?:^|;\s*)(?:store=(.*?))(?:;|$)"));
}
return (hash);
}
Ma, con questo metodo potrebbe essere necessario modificare il resto della tua VCL per memorizzare nella cache la pagina in modo corretto e inviare il cookie al server
Un'altra opzione è usare il cookie per variare il caching su un header arbitrario, chiamiamolo X-Mage-L ang:
sub vcl_fetch {
#can do this better with regex
if (req.http.Cookie ~ "(?:^|;\s*)(?:store=(.*?))(?:;|$)"){
if (!beresp.http.Vary) { # no Vary at all
set beresp.http.Vary = "X-Mage-Lang";
} elseif (beresp.http.Vary !~ "X-Mage-Lang") { # add to existing Vary
set beresp.http.Vary = beresp.http.Vary + ", X-Mage-Lang";
}
}
# comment this out if you don't want the client to know your classification
set beresp.http.X-Mage-Lang = regsub(req.http.Cookie, "(?:^|;\s*)(?:store=(.*?))(?:;|$)");
}
Questo modello è utilizzato anche per il rilevamento dei dispositivi con vernice: https://github.com/varnish/varnish-devicedetect/blob/master/INSTALL.rst
Poi, si dovrebbe estendere Mage_Core_Model_App per utilizzare questa intestazione invece del cookie 'negozio'. In Magento CE 1.7 la sua _checkCookieStore:
protected function _checkCookieStore($type)
{
if (!$this->getCookie()->get()) {
return $this;
}
$store = $this->getCookie()->get(Mage_Core_Model_Store::COOKIE_NAME);
if ($store && isset($this->_stores[$store])
&& $this->_stores[$store]->getId()
&& $this->_stores[$store]->getIsActive()) {
if ($type == 'website'
&& $this->_stores[$store]->getWebsiteId() == $this->_stores[$this->_currentStore]->getWebsiteId()) {
$this->_currentStore = $store;
}
if ($type == 'group'
&& $this->_stores[$store]->getGroupId() == $this->_stores[$this->_currentStore]->getGroupId()) {
$this->_currentStore = $store;
}
if ($type == 'store') {
$this->_currentStore = $store;
}
}
return $this;
}
si dovrebbe impostare il negozio corrente $ _SERVER [ 'X-Mage-Lang'] invece del cookie
Add seguenti righe in vernice Config,
if(beresp.http.Set-Cookie) {
return (hit_for_pass);
}
qual è l'effetto di queste righe? È la migliore o la risposta più breve? ;) – fbtb
- 1. Magento Multi Store multi valuta
- 2. Utilizza l'API di riposo Magento con visualizzazione multi-store
- 3. ID negozio predefinito del sito web magento
- 4. Come ottenere la valuta del negozio Magento
- 5. Magento Ottieni filtro raccolta prodotti per ID negozio
- 6. Recupera l'URL di base del negozio Magento in javascript
- 7. Come ottengo l'url di checkout predefinito per un negozio Magento?
- 8. Magento Multi Store Credenziali di login combinate cliente
- 9. Magento Configura prodotti con 100 di permutazioni
- 10. obj.ttl in vernice 4.0
- 11. Vernice: Guru Meditation
- 12. Associare un negozio con Ext.menu.Menu
- 13. nopcommerce - multi store con attributi del prodotto
- 14. È possibile definire gli aggiornamenti del layout di Magento in base al negozio
- 15. Forza vernice immediata in JavaFX
- 16. Magento - Trova i prodotti disponibili con l'inventario
- 17. Mezzi di vernice per passaggio?
- 18. Come impostare il tasto Done nella tastiera in swift-laguage?
- 19. Personalizzato "Tipo di input catalogo per proprietario del negozio" per gli attributi del prodotto magento
- 20. magento - Il tipo di immagine e le informazioni devono essere specificate per ogni vista negozio
- 21. Multi-tenancy con SQLAlchemy
- 22. Come configurare ulimit con supervisord (per avviare la vernice)
- 23. Incremento di un conteggio di pagine con vernice e ESI
- 24. Registri API Magento
- 25. Programmazione dinamica - algoritmo di recinzione vernice
- 26. Haproxy davanti alla vernice o viceversa?
- 27. Come accedere alla sessione dell'utente Magento dall'esterno di Magento?
- 28. Vernice bordo arrotondato attorno all'immagine usando Raphael
- 29. Eliminazione della vernice tramite HTTP e REGEX
- 30. Codice vernice MS chiesto in un'intervista
L'utilizzo della memorizzazione nella cache dei cookie si applica solo a un utente. –
Non è un cookie di sessione, sta innescando il valore del cookie che ha la lingua in esso – timbroder
Ok, mio errore. Bella panoramica sempre. –