首先,后端项目springboot,前端项目VUE,两个都是运行在docker容器里,通过k8s进行编排的。
获取真实的客户端IP地址
一 需要在前端VUE的宿主nginx中,添加请求头规则
location /api {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8080/;
}
二 分享springboot下面获取IP地址方法
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.StringUtils;
import javax.servlet.http.HttpServletRequest;
import java.net.InetAddress;
import java.net.UnknownHostException;
/**
* Ip地址
*
*/
public class IpUtils {
private static Logger logger = LoggerFactory.getLogger(IpUtils.class);
private static final String IP_UTILS_FLAG = ",";
private static final String UNKNOWN = "unknown";
private static final String LOCALHOST_IP = "0:0:0:0:0:0:0:1";
private static final String LOCALHOST_IP1 = "127.0.0.1";
/**