layout: post
title: Nginx 后端服务器获取前端用户真实IP
categories: Nginx
description: Nginx 做为前端负载均衡时,后端服务器获取的IP为 Nginx 的本机IP,让Nginx 把用户IP传递到后端里面去。

keywords: Nginx, IP

Nginx 做为前端负载均衡时,后端服务器获取的IP为 Nginx 的本机IP,让Nginx 把用户IP传递到后端里面去。

问题

Nginx 做为前端负载均衡时,后端服务器获取的IP为 Nginx 的本机IP.

解决办法

1. Nginx 开启 http_realip_module 模块  
  
    ./configure --with-http_realip_module  
  
    make && make install  
  
	  
2.  Nginx 前端 增加 proxy_set_header  
  
    proxy_set_header X-Real-IP $remote_addr;  
  
  
3.  Nginx 后端 增加 real_ip_header  
  
    real_ip_header     X-Real-IP;  
	  
	后端配置 必须重启 Nginx 才能生效, reload 不生效。  
  
4.  Tomcat 后端 需要修改 Service.xml  
  
    找到  
	pattern="%h %l %u %t "%r" %s %b" />  
	  
	修改为  
	pattern="%{X-FORWARDED-FOR}i %l %u %t %r %s %b %D %q %{User-Agent}i %T" resolveHosts="false"/>  
	  

   留言:

验证成功!
请输入内容!
验证成功!
请输入内容!