|
|
nginx.conf配置:8 j! m1 P& v+ b* \2 w. |& C
9 D$ [( ^. o5 |% Nlocation / {
2 t5 y0 ]2 d5 c/ L8 \0 i proxy_pass http://127.0.0.1:8081/myweb/; - ~1 f4 ^2 p, x) Q: k9 B
proxy_redirect off;
* ^1 @! C& j6 _0 _2 F proxy_set_header Host $host; ( G( k* k1 `8 d" e# R4 {5 J9 Z. K! I
proxy_set_header X-Real-IP $remote_addr; ; w/ r2 }6 R( g# G! o$ t
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
0 S* D: m% s& v0 X/ ^ n: l}
5 D2 f) E; z+ J& q9 J: M
' P M# d8 m e0 Y! R) K$ u0 \后端获取方式:
9 B0 ^$ d. y6 V0 v1 W$ E
3 z' [! T9 t* U/*** x- O7 ?, N6 Q% A* b
* 获取客户端IP地址;这里通过了Nginx获取;X-Real-IP, % N, l( X# ~0 }* R F7 ~8 Q _
* @param request
! H' D, j4 K% H * @return
" N$ @: z$ F6 {) ~$ M */ 8 K6 y+ f2 u; y$ l7 y
public static String getClientIP(HttpServletRequest request) {
: A$ x }$ ?, ^8 W3 H+ P String fromSource = "X-Real-IP"; ' I3 F0 U0 t2 o9 g. Z7 z
String ip = request.getHeader("X-Real-IP");
u4 U" ~/ k0 c7 n& k9 L. d' _' i7 J if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ; z2 f1 F7 Q& B5 p" R; Z8 \
ip = request.getHeader("X-Forwarded-For");
0 j8 F! X0 B: L3 y) G3 `6 v fromSource = "X-Forwarded-For";
4 w2 M: O/ D i& s2 @% O/ \3 B+ Y } ) L4 \: o- N; ]) {/ O
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ; k, `; m% R' z; [: I- P
ip = request.getHeader("Proxy-Client-IP");
- l: V" L/ E" s. c" @ fromSource = "Proxy-Client-IP";
$ L; q: @5 e" R5 `1 l7 q }
. u5 V. A/ u# @3 q' _, G) p if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { 4 I q+ y2 y7 P( ]# ?8 [ v
ip = request.getHeader("WL-Proxy-Client-IP");
* i! }, u6 d% }/ n! s fromSource = "WL-Proxy-Client-IP";
" G4 W# n' L( f2 q% V6 l+ A }
/ ~, K+ G7 Q8 k& M: L! g/ k% k1 q if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
a+ c, m& n' D9 V, D ip = request.getRemoteAddr(); % U' I; J/ a& O# Q3 _' [8 B9 E
fromSource = "request.getRemoteAddr";
3 W( p! D% G `4 ` } 5 ^; P5 s5 M" W4 h/ ~* O
appLog.info("App Client IP: "+ip+", fromSource: "+fromSource);
: [7 I* x6 z! Y1 z3 |9 a# | return ip; 3 b" H+ Q' w- S; z! n
} / c9 s2 t: ]7 s: q; w: s+ J
1 _5 i% y0 [, ~0 d这样就不会一直获取的是服务器的Ip了。5 X! A, P# k' z$ g4 q% x
: E" y& p; p+ [& U( ^1 k0 P2 Z
9 \5 m, c' [+ x/ V2 g; I |
|