Skip to content

关于nginx反向代理后获取不到客户端的真实ip地址 #17

Open
@lensh

Description

@lensh

要想在程序中取得真实的IP,在执行nginx的configure时,必须指定参数“--with-http_realip_module”,
示例:
sudo ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module
然后修改nginx配置文件:

  location / {
           proxy_pass http://localhost:8080; #后端的web服务器
           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;
  }

重启nginx: ./nginx -s reload 即可。
然后在express服务器里,通过 req.headers['x-real-ip']即可拿到真实ip地址

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions