2015-04-09 14 views
10

Sto usando apache come bilanciamento del carico e proxy inverso. Per la stickiness della sessione sto creando un cookie con il percorso del nodo.apache Come utilizzare "Set intestazione Set-Cookie scade = <date>" dinamicamente

Header set Set-Cookie "h=.%{BALANCER_WORKER_ROUTE}e; path=/; domain=.domain.com" env=BALANCER_ROUTE_CHANGED 

Come faccio a impostare il valore expires nel cookie per essere X minuti da quando la richiesta arriva?

La documentazione per mod_headers non copre nemmeno Set-Cookie in dettaglio in modo non v'è alcuna informazioni là su una sintassi dinamica da utilizzare per expires.

Ho provato a impostare il max-age ma sfortunatamente max-age doesn't work with IE 11 e molti dei nostri clienti lo usano.

I documenti per mod_rewrite cookie si riferiscono a come impostare una durata nel cookie in modo che possa farlo funzionare con questo brutto mod_rewrite ma ho dovuto fare una regola per percorso poiché non funzionava nella mia sezione <Proxy balancer://my_cluster>:

RewriteCond %{HTTP_COOKIE} h=.1 [NC] 
RewriteRule . - [CO=h:.1:.domain.com:30:/] 
RewriteCond %{HTTP_COOKIE} h=.2 [NC] 
RewriteRule . - [CO=h:.2:.domain.com:30:/] 
RewriteCond %{HTTP_COOKIE} h=.3 [NC] 
RewriteRule . - [CO=h:.3:.domain.com:30:/] 
RewriteCond %{HTTP_COOKIE} h=.4 [NC] 
RewriteRule . - [CO=h:.4:.domain.com:30:/] 
RewriteCond %{HTTP_COOKIE} h=.5 [NC] 
RewriteRule . - [CO=h:.5:.domain.com:30:/] 
RewriteCond %{HTTP_COOKIE} h=.6 [NC] 
RewriteRule . - [CO=h:.6:.domain.com:30:/] 
RewriteCond %{HTTP_COOKIE} h=.7 [NC] 
RewriteRule . - [CO=h:.7:.domain.com:30:/] 
RewriteCond %{HTTP_COOKIE} h=.8 [NC] 
RewriteRule . - [CO=h:.8:.domain.com:30:/] 

Qualche idea su come realizzare con Header set Set-Cookie? Grazie!

risposta

3

Forse si potrebbe mantenere la vostra idea con una regola generica

RewriteCond %{HTTP_COOKIE} h=\.([1-8]) [NC] 
RewriteRule . - [CO=h:.%1:.domain.com:30:/] 
+0

+1 Grazie per la regola. Non ho scavato di più nel rendere quella parte generica perché voglio essere in grado di realizzarla con 'Header set Set-Cookie', altrimenti sto impostando un cookie senza un timeout a destra dopo averlo riscritto. Questo è quello che sto usando per ora però. – DavidG

+0

Non sono a conoscenza di un altro modo di farlo, tranne con 'Header' e questo codice. C'è una ragione particolare per cui vuoi solo ottenerla con 'Header'? Personalmente, l'avrei fatto come ho risposto. Forse potresti descrivere qual è il contesto e perché devi farlo, allora potremmo vedere se esiste un'opzione migliore –

+0

Solo perché sto impostando il cookie e quindi riscrivendolo. Sembra piuttosto dispendioso. – DavidG

0

ho guardato il cookie siti paypal e ho trovato che impostare l'ora cookie per l'anno passato - (01 -01-1970). Il motivo dietro questo potrebbe essere quello di fermare il riutilizzo dei cookie.

Problemi correlati