gin+Nginx获取真实的客户端IP

gin获取客户端真实IP方法如下:

func xx(c *gin.Context){
	
	ip := c.ClientIP()

}

当使用Nginx为Golang gin程序做反向代理(端口转发)或负载均衡时,gin得到的客户端IP为127.0.0.1,这是由于Nginx没有正确配置导致;

解决方法

在Nginx配置中设置两个HTTP Header,X-Real-IPX-Forward-For

location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forward-For $remote_addr;
}

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/gin-get-real-clientip.html

分类: 计算机技术
推荐阅读:
PySide6 aboutQt()函数详细教程 PySide6.QtWidgets.QApplication类的aboutQt()函数用于显示一个关于Qt的简单消息框;该消息包括应用程序正在使用的Qt版本号;
MIPS指令的寻址方式和数据类型 MIPS指令支持多种寻址方式和数据类型,以满足不同的应用需求。
什么是可打印字符? 可打印字符是指在文本中可以显示和输出的字符,包括字母、数字、标点符号和一些特殊符号。根据ASCII编码标准,ASCII码范围内的可打印字符的值为 32(空格)到 126(波浪号)。
Python使用集合实现内容去重 有这么一个场景,某个文件用于记录人名(也可以是URL或者其他的),编辑发现,出现了重复的内容。那么我们如何使用Python来进行去重呢?
Python计算两点之间的欧式距离 本文将使用Python来实现计算出二维和多维空间中两个点之间的欧式距离;
使用Python处理Nginx日志 Nginx日志中包含每个HTTP请求的客户端地址、时间、请求方法和页面、返回状态码、返回数据大小,UserAgent这些信息,本文的目的是在Python中使用正则表达式对这些信息进行格式化处理。