今天修改websocket通过nginx代理后,发现一个问题,之前获取真实访问ip的方法失效了,后来经过查询多个博客,终于找到了最简单,最搞笑的解决方式:
参见博客Nginx反向代理websocket协议的情况使用springboot项目获取客户端ip的地址
他的方法不仅解决了websocket获取真实ip的问题,http通过nginx代理获取真实ip也可以继续使用原生的request.getRemoteAddr()进行获取了。
只需要在yml文件中,加上几行tomcat的配置就可以了:
protocol-header: X-Forwarded-Proto
remote-ip-header: X-Forwarded-For
protocol-header-https-value: http
port-header: X-Forwarded-Port