您的位置:首页 > 运维架构 > Nginx

nginx作为代理 后端服务器ip问题

2014-05-13 15:43 429 查看
由于采用nginx+nginx的方式,导致后端nginx记录的ip记录错误,走了很多弯路,记录一下。

1.在后端机器上重新变异nginx

./configure  --prefix=/usr/local/webserver/nginx --with-http_ssl_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module --with-http_realip_module
make

make install
2,前端nginx proxy配置
    proxy_pass        http://nginx_upstream;

    proxy_set_header   Host             $host;

    proxy_set_header   X-Real-IP        $remote_addr;

    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

    client_max_body_size  10m;

    client_body_buffer_size 128k;

    proxy_connect_timeout 120;

    proxy_send_timeout    90;

    proxy_read_timeout    90;

    proxy_buffer_size     4k;

    proxy_buffers    4   32k;

    proxy_busy_buffers_size 64k;

    proxy_temp_file_write_size  64k;

3.后端nginx proxy配置
  set_real_ip_from 10.164.191.102; 前端代理ip

  real_ip_header     X-Real-IP;
  proxy_set_header X-Real-IP $remote_addr; 一定得加上,不然获取的还是代理ip

4.后端日志记录设置
    log_format  '$http_x_real_ip - $remote_user [$time_local] "$request" '

                      '$status $body_bytes_sent "$http_referer" '

                      '"$http_user_agent" "$http_x_forwarded_for"';

5.nginx+apache配置
用mod_rpaf来获取IP的
所以需要安装这个模块

下载:http://stderr.net/apache/rpaf/download/

tar zxvf mod_rpaf-0.6.tar.gz

cd mod_rpaf-0.6

/usr/local/www/apache/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

配置apache:

在 httpd.conf中添加

LoadModule rpaf_module libexec/apache2/mod_rpaf-2.0.so
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 192.168.1.1 #这个是前段的IP,可不是后端的IP哦
RPAFheader X-Forwarded-For

LogFormat "%{X-Real-Ip}i %l %u %t \"%m http://%v%U%q\"
%>s %b \"%{Referer}i\" \"%{User-Agent}i\" - %h" combinedall
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nginx apache 代理 ip tomcat