架构如下:

lvs 转发请求至nginx  nginx代理域名至源nginx

正常的配置源nginx是取不到用户的真实IP需要增加模块来解决

配置过程如下:

增加一个模块:

http://wiki.nginx.org/NginxChsHttpRealIpModule

需要在编译nginx时增加:

./configure --user=daemon --group=daemon --prefix=/usr/local/nginx/ --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-md5=/usr/lib --with-sha1=/usr/lib --with-http_gzip_static_module --with-http_realip_module

然后配置nginx-proxy的配置文件:

server {     listen   80 default;     server_name  _;     index index.php;       location / {              root   /data/www/wwwroot/domain;              proxy_redirect off ;              proxy_set_header Host $host;              proxy_set_header X-Real-IP $remote_addr;              proxy_set_header REMOTE-HOST $remote_addr;              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;              client_max_body_size 50m;              client_body_buffer_size 256k;              proxy_connect_timeout 30;              proxy_send_timeout 30;              proxy_read_timeout 60;              proxy_buffer_size 256k;              proxy_buffers 4 256k;              proxy_busy_buffers_size 256k;              proxy_temp_file_write_size 256k;              proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;              proxy_max_temp_file_size 128m;              proxy_pass    http://domain.com;             } }

配置源nginx的配置文件:

   location ~ .*\.php?$     {         fastcgi_pass 127.0.0.1:9000;         fastcgi_index index.php;         fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;         include fastcgi_params;       #set_real_ip_from   192.168.1.0/24;   #允许被信任的段         set_real_ip_from   192.168.1.10;      #允许被信任的IP  加强安全性         real_ip_header     X-Real-IP;     } 

配置好后,日志里就可以看到用户的真实IP了。

在centos 64位上配置生效。测试一切正常。

转载于:https://blog.51cto.com/xlogin/973968

lvs nginx-proxy nginx 取用户真实IP相关推荐

  1. PHP、Tomcat获取Nginx代理后的客户端真实IP

    PHP.Tomcat获取Nginx代理后的客户端真实IP 文章目录 PHP.Tomcat获取Nginx代理后的客户端真实IP 一.PHP获取Nginx代理后客户端真实IP Nginx配置 PHP配置 ...

  2. nginx反向代理获取用户真实ip

    nginx做反向代理时,默认的配置后端获取到的ip都是来自于nginx,如何转发用户的真实ip到后端程序呢?如是是java后端,用request.getRemoteAddr();获取到的是nginx的 ...

  3. nginx获取客户端请求的真实IP

    客户端通过nginx代理访问后端jetty服务器时,后端服务器收到的请求信息中只有nginx代理的IP信息,无法看到client的真实IP, 所以nginx需要获取客户端请求头的真实IP地址进行传递, ...

  4. Nginx/Apache/Tomcat记录屏蔽真实IP

    记录客户端真实IP #Nginx示例 log_format  upstream  '$time_iso8601 $http_x_forwarded_for $host $upstream_respon ...

  5. nginx代理后,获取真实IP,做并发访问限制的方法(限流)

    站点在运行时,为了防止DDoS 攻击.或内部接口调用造成的数据迸发,nginx提供了limit限流模块: HttpLimitZoneModule 限制同时并发访问的数量HttpLimitReqModu ...

  6. ASP.NET取用户浏览器IP地址等信息

    在ASP.NET中有一个很重要的Property叫做HttpRequest.ServerVariables,通过这个Property可以取出很多用户浏览器的信息,例如IP地址等等. 例如取出IP地址信 ...

  7. 使用nginx代理的情况下获取用户真实IP

    ##1.背景知识 1.1. 前提知识点: 还有nginx中的几个变量: remote_addr 代表客户端的IP,但它的值不是由客户端提供的,而是服务端根据客户端的ip指定的,当你的浏览器访问某个网站 ...

  8. nginx 如何配置来获取用户真实IP

    ##1.背景知识 1.1. 前提知识点: 还有nginx中的几个变量: remote_addr 代表客户端的IP,但它的值不是由客户端提供的,而是服务端根据客户端的ip指定的,当你的浏览器访问某个网站 ...

  9. CDN下nginx获取用户真实IP地址

    为什么80%的码农都做不了架构师?>>>    随着nginx的迅速崛起,越来越多公司将apache更换成nginx. 同时也越来越多人使用nginx作为负载均衡, 并且代理前面可能 ...

  10. 【7W字长文】使用LVS+Keepalived实现Nginx高可用,一文搞懂Nginx

    往期文章一览 分布式会话与单点登录SSO系统CAS,包含完整示例代码实现 [15W字长文]主从复制高可用Redis集群,完整包含Redis所有知识点 使用LVS+Keepalived实现Nginx高可 ...

最新文章

  1. 78行Python代码帮你复现微信撤回消息!
  2. 软件质量保证与测试笔记——江湖救急版
  3. learnpython有中文版吗_简介 | Learn Python the Hard Way 中文版
  4. 分布式配置中心阿波罗的搭建与客户端的应用
  5. LoadRunner11支持的浏览器小结-Loadrunner11打不开IE浏览器的问题
  6. java编写一个彩票开奖的模拟程序.游戏共有两种玩法,一种是21选5,即玩家输入5个1到21内的不重复的数。另外一种玩法是6+1玩法,即要求玩家输入7个整数,代表所购买的彩票号码,最后一个是特码。
  7. Android内核开发:为什么刷机后系统第一次启动会很慢?
  8. 她玩游戏好都不准我玩游戏了_我们可以玩游戏吗?
  9. asp.net扫描仪编程及ajax图片数据上传
  10. WordPress 5.0的重要问题,答案已有
  11. 微信支付V3版本的 签名生成,验签,解密,统一下单的简单封装
  12. LitePal 数据库基本操作
  13. 7-15 计算圆周率
  14. 程序员的自我修养(一)
  15. HBuilder X不能运行到内置终端
  16. 彩虹外链网盘V5.4更新 新增用户系统与分块上传
  17. 安全测试 : 小米(xiaomi.com)网站短信接口安全测试,如何保护短信接口?
  18. 【python爬虫】爬取网贷之家所有P2P平台基本数据并写入MYsql数据库
  19. 云计算概述(5个基本特征、4种部署模型、3种服务类型)
  20. VMware VCSA 6.7高可用性HA

热门文章

  1. KVM 介绍(8):使用 libvirt 迁移 QEMU/KVM 虚机和 Nova 虚机 [Nova Libvirt QEMU/KVM Live Migration]
  2. Linux内核中的PID散列表实例
  3. per_cpu机制的详解
  4. ldd3 sbull编译遇到的问题 解决(部分)方法
  5. 自己编译操作系统,安装systemtap
  6. rancher k8s docker 关系_CentOS7下利用Rancher搭建K8s集群
  7. 最新计算机操作员高级试题,计算机操作员高级考试试题
  8. mysql视图的语法错误_MySQL视图的优缺点以及如何创建视图
  9. Java中mod的作用_Java中mod和%区别
  10. mysql 字节 字符_字符与字节 | 字痕随行