nginx代理获取ip为127.0.0.1解决方法

时间:2025-03-21 08:30:32

原因

我们访问互联网上的服务时,大多数时,客户端并不是直接访问到服务端的,而是客户端首先请求到反向代理,反向代理再转发到服务端实现服务访问,通过反向代理实现路由/负载均衡等策略。这样在服务端拿到的客户端IP将是反向代理IP,而不是真实客户端IP,因此需要想办法来获取到真实客户端IP。

获取真实ip配置

   

在nginx的配置文件中的location下添加

proxy_set_header Host $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;

示例:

server {  
    listen 80;  
    server_name localhost;  
    location / {  
        proxy_set_header Host $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;
            
        client_max_body_size 2048m;  //设置文件上传最大限制 2G
        proxy_pass http://localhost:8081;  
    }  
}