|
|
nginx.conf配置:
) w5 D' E3 W2 \1 D0 `* B1 k; x* `3 n- e. ]/ H# H4 S8 u
location / { 0 R2 G- x) o) b5 X
proxy_pass http://127.0.0.1:8081/myweb/;
$ G4 k" V9 L5 ?( K# n% S proxy_redirect off; * E* i# z2 m- ?- a9 o. p
proxy_set_header Host $host; 2 Z' I/ N1 \; V
proxy_set_header X-Real-IP $remote_addr;
1 O- \+ N: O, e: l+ G* j1 R. q proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + ^- ^) i5 a( _" z/ c2 } u( I& B
}
! v; D! S: j( m, J( ?7 J. Q0 W/ u5 [( |7 ~
后端获取方式:2 C3 F3 g. Z9 P: Y5 e' w$ O2 f7 U
; B u! q5 v) x% z l( Q, H/***
. i( X3 G; l) r8 x, H& m: j * 获取客户端IP地址;这里通过了Nginx获取;X-Real-IP,
- ~4 R. Z0 ]: }* G3 y$ u. i I9 h# V * @param request
3 f9 M V5 k5 x8 S7 Q * @return 7 D# C4 u2 ^2 o( r8 G7 z
*/ ( G/ ]/ J+ @ y2 e6 T
public static String getClientIP(HttpServletRequest request) { & A) q1 V d( x" r
String fromSource = "X-Real-IP"; $ m/ f( t* \4 z! e i/ G
String ip = request.getHeader("X-Real-IP"); % @5 @2 v2 l& i% d( T
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 4 W# p8 @" q5 P* q, ^ E0 [! g
ip = request.getHeader("X-Forwarded-For");
/ J- s$ e6 B" |2 I8 }6 E& S fromSource = "X-Forwarded-For"; " K7 w* U" @1 N n) Z$ D; Q+ d& W
}
1 k e+ l* ]! F* n5 q8 y if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ; S3 p2 E/ N7 T* c- M9 p
ip = request.getHeader("Proxy-Client-IP"); & Q( l/ n" h/ _2 d7 a( Y
fromSource = "Proxy-Client-IP";
/ u2 W. e) m' P* | }
7 H& k' J; R) [) u9 c6 V6 ^9 C if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
7 X9 y4 F% k: y- h4 I! x ip = request.getHeader("WL-Proxy-Client-IP");
9 `! V9 M8 N$ F o6 a3 U$ v( s fromSource = "WL-Proxy-Client-IP"; # Y( g0 ?5 ]. g* A( k
} 0 j2 o" m0 v" }
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
1 D9 D; {3 ^# S8 S& |: d4 D! R ip = request.getRemoteAddr();
0 ]$ B; H& R; a2 | fromSource = "request.getRemoteAddr";
J4 S. w @0 g0 e h( R } ' s6 u4 _5 r4 E9 x- F
appLog.info("App Client IP: "+ip+", fromSource: "+fromSource);
# n+ a, a: ?+ l* ^% |$ R# T return ip; & w1 R6 f9 [" b( n
}
( \- T9 D" V' [& t, H8 ]) J
7 ]5 A7 q' u; \* F U这样就不会一直获取的是服务器的Ip了。$ v! [1 ~' W8 h! M3 `! t" D
( Q/ S- y8 ]5 s
9 p) ?& Z3 n2 y' U4 O- B. u |
|