J'ai donc une configuration du type Nginx -> varnish -> apache2 Si je reçois une requête avec un fichier statique, elle est envoyée par nginx à varnish et de nouveau à nginx, car c'est beaucoup plus rapide que de laisser apache2 la servir. Mon problème est que lorsque je fais un
sub vcl_fetch {
set beresp.http.X-Tabulex-Client = client.ip;
pour voir quelle est l'adresse IP du client, on me dit que c'est 127.0.0.1 (X-Tabulex-Client 127.0.0.1) Dans le vcl_recv, j'ai.. :
sub vcl_recv {
if ((!req.url ~"^/typo3temp/*" && !req.url ~"^/typo3/*") &&req.url ~"\.(jpg|css|gif|png|js)(\?.*|)$"){
set req.backend = aurum;
set client.identity = req.http.X - Forwarded - For;
} elseif(client.ip == "192.168.3.189") {
/* Traffic from the other Varnish server, serve using real backends */
set req.backend = balance;
/* Set client.identity to the X-Forwarded-For (the real IP) */
set client.identity = req.http.X - Forwarded - For;
} else{
/* Traffic coming from internet, use the other Varnish as backend */
set req.backend = iridium;
}
}
La configuration de nginx contient
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_intercept_errors on;
lors de l'envoi à Varnish la première fois et rien lors de la réception de Varnish à nouveau.
Je ne sais pas où est le problème. Je m'attendrais à ce que le client.ip contienne l'adresse IP externe afin que je puisse l'utiliser pour l'acl. Des idées ?