getRemoteAddr()获取客户端输入的ip地址

getRemoteAddr()获取客户端输入的ip地址#

遇到的问题:

客户端输入的http://192.168.6.131:8888

服务器得到的是:http: //wxzj-web:80

原因:nginx配置问题

源码如下:

 /**
 * Returns the host name of the server to which the request was sent. It is
 * the value of the part before ":" in the <code>Host</code> header value,
 * if any, or the resolved server name, or the server IP address.
 *
 * @return a <code>String</code> containing the name of the server
 */
 public String getServerName();

之前nginx配置:


	......
	upstream wxzj-web {
        #server 192.168.0.41:8280 weight=1;
		server 127.0.0.1:8080 weight=1;
		#server 124.128.246.24:8180 weight=1;
    }

	......
	
	location /wxzj {
	    proxy_set_header Referer $http_referer;
        proxy_set_header Cookie $http_cookie;
	    proxy_set_header X-real-ip $remote_addr;
	    proxy_pass   http://wxzj-web; 
	}
	
	......
	

解决方法:

nginx配置添加下面参数

proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

各参数的含义如下所示。

  • Host包含客户端真实的域名和端口号;
  • X-Forwarded-Proto表示客户端真实的协议(http还是https);
  • X-Real-IP表示客户端真实的IP;
  • X-Forwarded-For这个Header和X-Real-IP类似,但它在多层代理时会包含真实客户端及中间每个代理服务器的IP。

	......
	
	upstream wxzj-web {
        #server 192.168.0.41:8280 weight=1;
		server 127.0.0.1:8080 weight=1;
		#server 124.128.246.24:8180 weight=1;
    }

	......
	
	location /wxzj {

		# 添加Host
        proxy_set_header Host $http_host;
        # 添加IP
        proxy_set_header X-Real-IP $remote_addr;
        # 添加X-Forwarded-For(以,分割的ip列表,第一个为真实的客户端ip)
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

	    proxy_set_header Referer $http_referer;
        proxy_set_header Cookie $http_cookie;
	    #这是webSocket的配置
        proxy_set_header Upgrade $http_upgrade;
        #这是webSocket的配置
 	    proxy_set_header Connection "upgrade";
        proxy_read_timeout 300;
        proxy_send_timeout 300;
        
		proxy_set_header X-Forwarded-Proto $scheme;
	    proxy_pass http://wxzj-web;
		
	}
	......
	
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示