- 积分
- 16843
在线时间 小时
最后登录1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?开始注册
x
nginx.conf配置:
' B8 z$ O+ M, z/ K( n7 w; V
/ ]9 ^6 ~- U" Ulocation / {
9 x% T& V/ Q* s' f+ R proxy_pass http://127.0.0.1:8081/myweb/;
& {" F, A' N# l& K( J: ^ proxy_redirect off;
! F9 R/ f, l3 X0 \7 l3 I proxy_set_header Host $host;
F9 m; z; W' p1 p proxy_set_header X-Real-IP $remote_addr;
2 X$ u- a: e4 |( z$ X0 x( X proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # f. l) g& R7 ^; Z) d! ^+ @
} 2 \1 h$ |( P; | _; _
0 P4 e& }0 R0 q# ?/ X6 n后端获取方式:. F0 H R# o' ^/ D# Z. g1 T7 \
1 |! p r0 V" c' C9 \# P
/***
( {" E; l3 [ I; S* B4 U * 获取客户端IP地址;这里通过了Nginx获取;X-Real-IP,
' n) O( U) U( u * @param request ( q6 g( r- W* q9 X! T( \ t
* @return
. G0 ~8 K" H! a: e */ ) ^2 v. I" d: o% O1 P7 f$ i
public static String getClientIP(HttpServletRequest request) {
4 r2 ~3 H) G& K- Y) e. x String fromSource = "X-Real-IP";
+ k$ z3 D8 Z4 ~' ?( B String ip = request.getHeader("X-Real-IP"); ; o: h7 M V; K, n5 z) ^- y$ @
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
) ^3 n% K1 O% M5 w! J9 I( R ip = request.getHeader("X-Forwarded-For"); 9 d6 H0 S! Y7 h& K
fromSource = "X-Forwarded-For"; , s! \' A8 I+ M. ]$ T
}
2 x) e+ x9 j/ Z j* x( {) X. G if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 2 H6 q( A% b. v3 U0 P
ip = request.getHeader("Proxy-Client-IP"); 3 s6 W4 f0 K4 t# @8 B4 T
fromSource = "Proxy-Client-IP";
4 @! M ~# z) w/ D+ V( W5 Y }
# M' _& {$ ]1 N+ l* N5 t5 f( x: `* `+ } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
7 X$ Z9 F; B ~( h ip = request.getHeader("WL-Proxy-Client-IP"); 4 H# `/ M* V4 r( k; y( R
fromSource = "WL-Proxy-Client-IP"; 5 _7 ~; u, @! o( D1 i8 C' E
}
2 U; P7 \0 u9 a2 Q& z1 d4 r if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { & T, u9 H, i2 o/ S( ?' t
ip = request.getRemoteAddr();
% j, c1 V) k/ l# H fromSource = "request.getRemoteAddr"; ! s4 P& ^8 d9 M8 a$ E& T) _% J5 Q
}
; c; |& r3 |1 O7 o appLog.info("App Client IP: "+ip+", fromSource: "+fromSource);
4 ]* ]3 b3 H7 p2 Y+ s return ip;
/ z3 h; {3 r! W} : x2 e0 v9 q2 ^9 y0 ?0 ] F3 E
% z7 K: b3 q" j ~, A4 u! E/ H这样就不会一直获取的是服务器的Ip了。
4 X% v5 b+ U- m, w1 Z2 J) P1 w7 D3 ?8 j; m' S) h9 e
1 z/ x) f: V0 R$ z1 c |
|