Maison  >  Article  >  Opération et maintenance  >  Comment résoudre le problème de l'impossibilité d'obtenir la véritable adresse IP du client après le proxy inverse Nginx

Comment résoudre le problème de l'impossibilité d'obtenir la véritable adresse IP du client après le proxy inverse Nginx

PHPz
PHPzavant
2023-05-14 09:58:051795parcourir

Lorsque nous utilisons le service de transfert de proxy Nginx, nous constaterons que nous ne pouvons pas obtenir la véritable adresse IP du client, et donc que nous ne pouvons pas obtenir l'emplacement géographique du client et d'autres informations.

1. Le fichier de configuration d'origine est le suivant

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

}

2. Après avoir configuré le transfert

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
        }
        
        # 代理转发
        location /api/{
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Public-Network-URL http://$http_host$request_uri;
            proxy_pass http://localhost:8080/;
        }
        
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

}

De cette façon, nous pouvons transmettre ensemble les informations d'en-tête du client et obtenir la véritable adresse IP de l'utilisateur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer