Contents
  1. 1. Nginx反向代理后如何获取客户端真实IP

Nginx反向代理后如何获取客户端真实IP

1
2
3
4
5
6
7
# 部分
location ~ \.php$ {
proxy_pass http://xxxx.x.xxx.xx:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

如果只有一层Nginx代理,则添加如上的 proxy_set_header 配置后,使用$_SERVER['HTTP_X_REAL_IP'] 即可获取客户端真实IP地址。

通过var_dump($_SERVER);查看报头信息,可以看到多了2项目: HTTP_X_REAL_IPHTTP_X_FORWARDED_FOR

另:

PHP内置了web服务器,便于本地开发调试。

要求:PHP version >= 5.4
本地服务器启动:

1
php -S localhost:8000

本地启动后:

1
2
3
4
5
6
PHP 7.0.15 Development Server started at Thu Jun 22 10:39:52 2017
Listening on http://localhost:8000
Document root is /Users/lomo
Press Ctrl-C to quit.
[Thu Jun 22 10:39:57 2017] ::1:59794 [404]: / - No such file or directory
[Thu Jun 22 10:39:58 2017] ::1:59795 [404]: /favicon.ico - No such file or directory

    
        
        版权声明:
        本文由Lomo创作和发表,采用署名(BY)-非商业性使用(NC)-相同方式共享(SA)国际许可协议进行许可,
        转载请注明作者及出处,本文作者为Lomo,本文标题为get real IP by nginx proxy.
    
    


 Leave a message ^_^:

Contents
  1. 1. Nginx反向代理后如何获取客户端真实IP