Nginx TCP代理的问题

发布于 2022-09-04 05:27:55 字数 244 浏览 9 评论 0

设备使用1883端口通过nginx 的TCP/UDP 代理转发到后台服务器,
后台服务器查看设备的socket的ip 是代理服务器的ip,而不是设备的实际IP,
怎么实现透明代理,让nginx 代理把设备的实际ip连接后台服务器呢

备注:

  1. 设备连接时拿不到自己的ip,所以不要往这点去想

  2. 是TCP/UDP代理,不是http

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

独自唱情﹋歌 2022-09-11 05:27:55

nginx支持tcp转发,同时可以设置 proxy_protocol on;这个参数,从而后台可以解析出client的ip.

https://docs.nginx.com/nginx/...

才能让你更想念 2022-09-11 05:27:55

Nginx Stream Module
The ngx_stream_core_module module is available since version 1.9.0. This module is not built by default, it should be enabled with the --with-stream configuration parameter.

这个模块不在默认构建之前,安装nginx时需要增加--with-stream配置。

示例程序

worker_processes auto;

error_log /var/log/nginx/error.log info;

events {
    worker_connections  1024;
}

stream {
    upstream backend {
        hash $remote_addr consistent;

        server backend1.example.com:12345 weight=5;
        server 127.0.0.1:12345            max_fails=3 fail_timeout=30s;
        server unix:/tmp/backend3;
    }

    upstream dns {
       server 192.168.0.1:53535;
       server dns.example.com:53;
    }

    server {
        listen 12345;
        proxy_connect_timeout 1s;
        proxy_timeout 3s;
        proxy_pass backend;
    }

    server {
        listen 127.0.0.1:53 udp;
        proxy_responses 1;
        proxy_timeout 20s;
        proxy_pass dns;
    }

    server {
        listen [::1]:12345;
        proxy_pass unix:/tmp/stream.socket;
    }
}
鸩远一方 2022-09-11 05:27:55

你好,我也遇到了相同的问题。请问你的问题解决了吗

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文