|
|
nginx.conf配置:) C$ v( w% p# X# f
& F6 f9 F {9 W- y( Z
location / { . r3 L" X2 u) u" }
proxy_pass http://127.0.0.1:8081/myweb/;
+ _; z% }4 a$ \9 o proxy_redirect off; # v1 S. k4 y4 u u5 N/ ?
proxy_set_header Host $host;
6 W& ?+ b$ @6 U& p& g proxy_set_header X-Real-IP $remote_addr;
) Z3 P# H# o/ d/ R$ r proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
5 `; a' [, r# P2 X1 ~. I& y} , _, |/ n* A1 |9 z( Y
; |9 P; D { d0 E3 O后端获取方式:
5 G/ ^8 e; P. S; t0 L' C7 {. e
+ q; w1 o, k+ }6 r! A1 D8 B9 `3 x/***
4 i8 C$ i: H% A, E * 获取客户端IP地址;这里通过了Nginx获取;X-Real-IP, , a: H. U- l- R7 v
* @param request 3 j( R. T; Y$ x0 [
* @return
6 h1 |/ A) l8 M */
5 ~6 ?3 H8 J$ y, J7 ^9 C8 o# qpublic static String getClientIP(HttpServletRequest request) {
5 z& Q8 C) C7 u. d; K String fromSource = "X-Real-IP";
6 L; ^8 l$ r/ n& ^2 u String ip = request.getHeader("X-Real-IP"); 4 y8 B$ p, w5 ]+ w5 } N
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ! w8 a, G( p2 [# K) ~) g& m. W" B
ip = request.getHeader("X-Forwarded-For"); / z- {- U( n6 g
fromSource = "X-Forwarded-For";
0 H" c0 S" r9 S$ B$ R5 F$ L } ; X- ^/ P2 B1 ~) B5 {- a; N
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
3 @) R8 X% [8 O' I! i ip = request.getHeader("Proxy-Client-IP");
5 R6 ?7 Y- P1 w. f fromSource = "Proxy-Client-IP";
! Z7 o0 [ O! @; s% j2 y3 M } ' V4 W$ C9 W, R8 k! U
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
5 P4 p1 Q4 X2 z) l8 p. q ip = request.getHeader("WL-Proxy-Client-IP"); ; n# @2 [0 Q; y. _6 v6 m
fromSource = "WL-Proxy-Client-IP";
U) S+ s8 [" G/ Y# |% a$ w% T4 {( ^ }
+ s6 o9 v+ n: m if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
# |: J' b7 r/ G ip = request.getRemoteAddr();
; r4 N% y7 V C2 C2 m2 w. f# v( y; Z fromSource = "request.getRemoteAddr"; + `* j/ Y8 X' a% ~
} 7 I u- a1 G u$ G" K
appLog.info("App Client IP: "+ip+", fromSource: "+fromSource); . O- M v2 B$ U( S5 e( e3 M
return ip; - O, v: O/ }( X$ z( x, { s. {, z$ s& X
}
0 z4 o7 {9 K, G
6 B' a! @5 i& j/ m( d这样就不会一直获取的是服务器的Ip了。
. i2 q! W1 P$ U& D" \/ D+ q, |5 r1 h+ A0 y5 I7 E+ e U
" g; ` J4 [" \ |
|