香蕉球是那样踢:lvs nginx-proxy nginx 取用户真实IP

来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 16:16:22

lvs nginx-proxy nginx 取用户真实IP

架构如下:

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位上配置生效。测试一切正常。