获取用户的真实IP Nginx会将客户端的IP信息存放在$remote_addr变量里,但这并不意味着它就是客户端的IP,生产环境往往会充满各种代理,让IP的来龙去脉变得扑朔迷离. 目前互联网公司基本上都采用这种架构方式: 用户的请求并不是直接和Nginx交互,而是通过了CDN加速平台.默认情况下,Nginx看到的$remote_addr是CDN的IP,这对日志的记录和分析,还有后端的业务逻辑都可能产生不良的影响,如果需要获取到用户的真实IP呢,这个时候realip模块就起到了作用. 此模块需要…
asp.net core 1.0.1发布已有些日子了,怀着好奇的心情体验了把ubuntu下的asp.net core 系统运行环境:ubuntu 16.0.4 for developer 首先搭建.net core的运行环境,可参见微软网站介绍: sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ xenial main" > /etc/apt/sou…
应用程序部署上线,一般都会用nginx之类的来进行反向代理,而不是直接访问tomcat之类的容器. 这时候如果用平时的获取ip的代码,就只会获取到nginx所在服务器的ip, 就失去了本身的意义. 今天就来配置下 nginx+tomcat 后,  程序获取ip和 tomcat的访问日志localhost_access_log 获取ip. 1.首先要在nginx中加个配置,即把用户ip保存下来 在nginx的配置文件中增加 proxy_set_header X-real-ip $remote_ad…
go 如果使用自己的服务器,可以直接使用 net/http 来获取 func ip(w http.ResponseWriter, r *http.Request) { fmt.Println(r.RemoteAddr) } 另外,在net包中也有 func (c *IPConn) RemoteAddr() Addr 以上是获取用户的ip,是与用户直连的ip,如果走代理,会是代理的ip 如果通过nginx代理,上边方法获得的是nginx的服务器的ip,所以这里要设置nginx代理 proxy_se…
在平时我们开发后端程序的过程中,应该多多少少都会碰到记录客户端 IP 的场景,例如我之前写过的 APP 用户的一个审计功能,就需要获取用户的 IP 地址:还有广告系统里面,也是需要获取用户的 IP 地址,有时这个 IP 地址会被用来标识用户的,因此需要比较准确得获取到用户的地址.当然,在开始本文的内容之前还是有必要强调一下我们现在的网络大环境的,在使用 IP 的时候,我们一定要记住有两个东西很关键,一个是网关,一个是代理. 网关其实好理解,说简单一些的就路由器吧,因为 IPv4 的地址空间是有限…
前面实现了ubuntu下的发布,然而实际项目一般为visual studio中发布文件系统,然后上传至生产环境中,(部分参考:上传文件到linux - ubuntu) 这节就发布到生产环境中的: 1.首先,在生产环境中搭建ftp服务端,方便我们上传文件至服务端中,以vsftpd为例: 首先安装vsftpd (不得不说ubuntu的apt-get用起来确实方便) sudo apt-get install vsftpd 如果出现错误提示时请先执行 sudo apt-get update 安装完成后输…
常见的坑有两个: 一.获取的是内网的ip地址.在nginx作为反向代理层的架构中,转发请求到php,java等应用容器上.结果php获取的是nginx代理服务器的ip,表现为一个内网的地址.php获取REMOTE_ADDR就是这样一个情况(内网地址). 二.获取的是攻击者伪造的ip地址.攻击者可以随便伪造一个头部信息,随便填写一个ip放到头部发过来,php获取到HTTP_CLIENT_IP就是这样一个情况.伪造的ip,导致我们数据库存储是假的ip,无从真实去判断攻击者的来源.比如批量注册帐号的注…
/usr/local/Cellar/go/1.5.1/libexec/src/ 他的RemoteAddr 是从哪里获取? func (c *conn) RemoteAddr() Addr { if !c.ok() { return nil } return c.fd.raddr } 使用远程地址的被nginx代理后获取不正确,都为127.0.0.1,解决方案需要配置nginx server { listen ; server_name localhost; location /{ root ht…
1. JAVA获取客户端请求的当前网络ip地址: /** * 获取客户端请求的当前网络ip * @param request * @return */ public static String getIpAddr(HttpServletRequest request){ String ipAddress = request.getHeader("X-Real-IP");//先从nginx自定义配置获取 if (ipAddress == null || ipAddress.length(…
使用nginx代理后以及配置https后,如何获取真实的ip地址 Date:2018-8-27 14:15:51 使用nginx, apache等反向代理后,如果想获取请求的真实ip,要在nginx中配置,把当前请求的ip等信息携带去请求应用服务. 1.配置nginx的https servler nginx.conf配置 server { listen 80; server_name edudemo.XXX.com; # 如果配置了下面的rewrite,下面的location就没用了,会直接转发…