Maison  >  Questions et réponses  >  le corps du texte

[Résolu] Pourquoi nginx en amont ne transmet-il pas l'adresse IP du navigateur ?

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"
阿神阿神2713 Il y a quelques jours732

répondre à tous(2)je répondrai

  • PHP中文网

    PHP中文网2017-05-16 17:15:22

    location / {
            proxy_pass   http://http://mysite.com;
            proxy_redirect off;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_set_header X-NginX-Proxy true;
    }

    répondre
    0
  • 为情所困

    为情所困2017-05-16 17:15:22

    Parce que vous ne l'avez pas configuré

    répondre
    0
  • Annulerrépondre