
首先,在前端nginx上需要做如下配置:
location /
proxy_set_hearder host $host;
proxy_set_header X-forwarded-for $proxy_add_x_forwarded_for;
proxy_set_header X-real-ip $remote_addr;
};
nginx会在把请求转向后台real-server前把>
网络通信可分为两种模式:TCP有连接的通信
UDP无连接的通信
依照上述的问题我可以理解为你是要进行有连接的通信。是要经过三次握手才能实现可靠的连接
第一次:建立连接时三次握手,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN(Synchronize Sequence Numbers)同步序列号。
服务器端即可使用:
Socket s=serverSocketaccept();
String clientIP=sgetInetAddress()toString();
这就实现了java服务器端获取到连接此服务器的客户端的IP了,你若想实现获取所有连接此服务器的客户端的IP,你可以把每次accept()返回的socket放进全局的Vector里面,然后在遍历这个vector方法就同上代码咯……
没有听懂楼主的话,做以下回答,不满意,不用采纳。
获取主机名和IP
使用Java IO,进行写入到指定位置。示例代码如下:
public void writerClassCode(String path, StringBuffer sb) {
File file = new File(path);//指定路径,如 D:\\Download\\javatxt
FileWriter writer;
try {
writer = new FileWriter(file);
writerwrite(sbtoString());//sb为主机名和IP,这个简写有意思吧!哈哈
writerclose();
} catch (IOException e) {
eprintStackTrace();
}
Systemoutprintln("执行完毕");
}
<tr>
<td width="50%"><%= requestgetServerName()%> </td>
<td height="4">服务器的域名</td>
</tr>
<tr>
<td width="50%"><%= javanetInetAddressgetLocalHost()getHostAddress() %> </td>
<td height="4">服务器的IP地址</td>
</tr>
<tr>
<td width="50%"><%=requestgetServerPort()%> </td>
<td height="5">服务器正在运行的端口</td>
</tr>
以上就是关于nginx做反向代理负载均衡 Java怎么获取后端服务器获取用户IP全部的内容,包括:nginx做反向代理负载均衡 Java怎么获取后端服务器获取用户IP、java 怎么获取请求方ip地址、服务端怎么获取客户端的ip java等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)