Nginx模块开发-获取用户ip
2014-09-23 14:34
627 查看
核心代码:
代码测试好使
代码的意思:如果Header中有x-real-ip,则将其作为ip,否则从socket中获取ip,这里只是简单的将ip打印到错误日志里了
其中r是ngx_http_request_t的指针,懂得nginx模块开发基本数据结构的都会知道这个,如果不知道,请另行做了解
吐槽:我花费了一个上午的时间在找nginx模块如何获取ip,网上的资料貌似并不多,只google到一个老外哥们说去connection中的socket拿,坑啊,nginx就不能封装一个现成的函数?
如果有人知道更简单粗暴的方法,请留言
if(r->headers_in.x_real_ip != NULL) { ngx_log_error(NGX_LOG_ERR, r->connection->log, 0, "%V", &r->headers_in.x_real_ip->value); } else { sockaddr_in *sin = (sockaddr_in*)(r->connection->sockaddr); ngx_log_error(NGX_LOG_ERR, r->connection->log, 0, "%s", inet_ntoa(sin->sin_addr)); }
代码测试好使
代码的意思:如果Header中有x-real-ip,则将其作为ip,否则从socket中获取ip,这里只是简单的将ip打印到错误日志里了
其中r是ngx_http_request_t的指针,懂得nginx模块开发基本数据结构的都会知道这个,如果不知道,请另行做了解
吐槽:我花费了一个上午的时间在找nginx模块如何获取ip,网上的资料貌似并不多,只google到一个老外哥们说去connection中的socket拿,坑啊,nginx就不能封装一个现成的函数?
如果有人知道更简单粗暴的方法,请留言
相关文章推荐
- 使用Nginx自带的Realip模块获取用户真实IP
- 使用Nginx自带的Realip模块获取用户真实IP
- nginx反向代理httpd获取用户真实ip
- nginx后的tomcat获取真实用户ip
- 多级代理下Nginx获取真实用户IP地址的总结
- nginx模块编程之获取客户ip及端口号
- nginx后的tomcat获取真实用户ip
- 使用nginx反向代理后,获取用户ip及原理解释
- 使用nginx后如何在web应用中获取用户ip及原理解释
- 使用nginx后如何在web应用中获取用户ip及原理解释
- nginx模块开发获取post参数
- Nginx在CDN加速之后,获取用户真实IP做并发访问限制的方法
- Nginx 负载均衡 后端服务器获取前端用户真实IP
- nginx做反向代理负载均衡 后端服务器如何获取用户的IP
- nginx做反向代理负载均衡 Java怎么获取后端服务器获取用户IP
- nginx后的tomcat获取真实用户ip
- 使用nginx后如何在web应用中获取用户ip及原理解释
- 使用Nginx后如何在web应用中获取用户ip及原理解释
- Haproxy做代理,后端nginx获取真实用户IP
- 多级代理下Nginx获取真实用户IP地址的总结