nginx http 可以通过配置 获取真实ip,但是tcp无法获取真实请求端ip,是需要什么特别的配置吗,还是nginx不支持?

解决方案 »

  1.   

    肯定能获取啊roxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for; 
      

  2.   

    stream{
    upstream redirect{
    hash $remote_addr consistent;
    server 192.168.0.211:8891;
    }
    server{
    listen 8891;
    #proxy_set_header   Host             $host;
    #proxy_set_header   X-Real-IP        $remote_addr;
    #proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    proxy_pass redirect;
    }
    }我指的是 stream模块(tcp,好像是1.9版本才支持的),不是http
      

  3.   

    stream{
    upstream redirect{
    hash $remote_addr consistent;
    server 192.168.0.211:8891;
    }
    server{
    listen 8891;
    #proxy_set_header   Host             $host;
    #proxy_set_header   X-Real-IP        $remote_addr;
    #proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    proxy_pass redirect;
    }
    }我指的是 stream模块(tcp,好像是1.9版本才支持的),不是http 
      

  4.   

    stream 的模块也是支持的,编译的时候要自己启用模块。还可以代理udp
    proxy_pass redirect  在没有特殊要求的情况下 最好是off  
    stream 模块nginx wiki 有很好的配置文档,你可以看看
      

  5.   

    楼主,tcp获取真实IP有方法解决吗?需要怎么配置
      

  6.   

    同问,现在遇到同样的问题,TCP代理之后后端怎么才能获取到客户真实的IP?不是HTTP 不是HTTP 不是HTTP
      

  7.   

    你好,请问Nginx 转发tcp代理 stream有办法吗? 网上搜索了好多资料,也做过好多测试,如,使用proxy_protocol好像都实现不了。麻烦楼主看下你的配置。
      

  8.   

    加上 proxy_protocol on; 打开配置后,第一次socket连接时,服务端会收到内容
    PROXY TCP4 192.168.99.1 192.168.99.1 5155 5555stream {
    upstream test{
    hash $remote_addr consistent;
    server 127.0.0.1:6666;
    server 127.0.0.1:7777;
    }
    server{
    listen 5555;
    proxy_pass test;
    proxy_protocol on;
    }
    }