Sto utilizzando cakephp per eseguire un'applicazione multi-tenant. C'è solo 1 istanza dell'app, l'unica differenza è il database a cui ogni app si connette. Oltre a questo, l'app è identica.Isolamento della cache APC in un'impostazione multi-tenant (cakephp)
La mia configurazione:
- Apache 2.2
- PHP 5.3
- torta 1.3.10
2k3 Win
ho l'applicazione schierato sotto docroot di Apache (solo 1 istanza di l'app è in esecuzione). Di recente sono passato da File a cache APC. I prefissi dei file per la memorizzazione nella cache sono gli stessi per entrambe le app. Utilizzo degli host virtuali Apache per decidere a quale applicazione andare. Sto caching statico html/js/css/gif ma non php (via mod_expires di apache)
Problema:
ho notato che alcuni dei valori memorizzati nella cache che avrebbero dovuto essere a disposizione di APP 1 stava mostrando nel menu a discesa per l'app 2. Sono rimasto scioccato nel vedere questo accadere.
Come è possibile aggiungere l'isolamento nel livello di cache APC tra le app?
UPDATE: problema si verifica anche se faccio una nuova copia della app e metterlo nel proprio docroot !!!
UPDATE2
Scenario 1) 1 istanza che ha tutte perm/pettine
Se ho codice php come
if(client=="client1") {
$options = array(opt1,opt2);
}else if(client=="client2") {
$options = array(opt3,opt4);
}
e questo codice è condiviso da entrambi i client 1 e client 2, in che modo la memorizzazione nella cache di APC influisce su questo?
Scenario 2) 2 esempio ciascuna personalizzata per cliente
client1.php
$options = array(opt1,opt2);
client2.php
$options = array(opt3,opt4);
modo questo influisce cache di APC? Se ho capito bene, per lo scenario 1, è possibile avere un mix di dati client1 con client 2 (molto cattivo) Per lo scenario 2, purché utilizzi chiavi di cache diverse, sono sicuro di non avere mai un mixup?
Grazie per il memcache per IP: idea di porta, ma per quanto riguarda la cache di opcode? – aks