1、Nginx增加配置
proxy_set_header Host $host;
proxy_set_header X-real-ip $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
server{
listen 80; # 监听80端口
server_name localhost; # 指定服务器域名
location / {
index index.html index.htm; # 指定首页索引文件的名称
root dist; # 指定服务器的默认网站根目录位置
}
location /sys/ {
proxy_pass http://127.0.0.1:8010;
proxy_set_header Host $host;
proxy_set_header X-real-ip $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
2、java获取IP
/**
* 获取请求用户的IP地址
* @param request
* @return
*/
public static String getRequestIp(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if (ip != null && ip.indexOf(COMMA) > 0) {
// 对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割
ip = ip.substring(0, ip.indexOf(COMMA));
}
if (ip == null || ip.length() == 0 || UNKNOWN.equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || UNKNOWN.equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || UNKNOWN.equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
if (LOCALHOST_IP.equals(ip)){
ip = getLocalhostIp();
}
return ip;
}