Résolu le besoin d'ajouter ces phrases sous le serveur
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
Pourquoi nginx en amont ne transmet-il pas l'adresse IP du navigateur, mais l'adresse du serveur nginx ?
Ma configuration de transfert nginx est la suivante :
upstream mysite.com{
server 10.24.240.132:8080;
server 10.24.155.103:8080;
ip_hash;
}
server
{
listen 443;
server_name mysite.com;
ssl on;
ssl_certificate /etc/ssl/crt/server.cer;
ssl_certificate_key /etc/ssl/crt/server.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 SSLv2 SSLv3;
ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://mysite.com;
}
}
La configuration réelle du serveur transmise est la suivante :
location ~ .*\.php.*
{
fastcgi_param HTTPS on;
include php_fcgi.conf;
include pathinfo.conf;
}
Mais le problème est que chaque fois que je visite le site Web, la valeur de $_SERVER['REMOTE_ADDR'] en php est l'adresse du serveur nginx de transfert 10.24.240.132 (le serveur de transfert écoute le port 80, l'adresse est 10.24.240.132, et les deux serveurs php écoutent le port 8080, le serveur de transfert fait également office de serveur php), au lieu de l'adresse du navigateur :
"REMOTE_ADDR" => "10.24.240.132"
"REMOTE_PORT" => "6324"
"SERVER_ADDR" => "10.24.240.132"
"SERVER_PORT" => "8080"
"SERVER_NAME" => "10.24.240.132"
Parce que vous ne l'avez pas configuré