V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
manfred4527
V2EX  ›  问与答

关于 nginx 做 tcp 反代的域名解析设置

  •  
  •   manfred4527 · 2022-11-20 09:54:28 +08:00 · 1368 次点击
    这是一个创建于 726 天前的主题,其中的信息可能已经有所发展或是发生改变。

    关于 nginx 做 tcp 反代的域名解析设置

    现在通过 nginx stream 模块做 tcp 反向代理

    stream {
    
      upstream example-ser{
            server example.com:1234;
      }
    
    
      server {
          listen 1234;
          proxy_connect_timeout 10s;
          proxy_timeout 10s;
          proxy_pass example-ser;
      }
    
    
    }
    

    如果 example.com 的地址解析出现变化,nginx 还是转发到原先的 IP 地址。

    在 stream 模块内使用 set 提示报错

    stream {  
    	resolver 223.5.5.5 valid=60s;
      set $example-ser example.com:1234;
      
        server {
          listen 1234;
          proxy_connect_timeout 10s;
          proxy_timeout 10s;
          proxy_pass $example-ser;
      }
    }
    
    #报错
    nginx[21518]: nginx: [emerg] "set" directive is not allowed here in
    

    HTTP 或 HTTPS 我都是使用 resolver 加 set 变量方法做的,tcp 四层现在不知道怎么配置。

    求解答,谢谢

    5 条回复    2022-11-22 09:21:24 +08:00
    cpstar
        1
    cpstar  
       2022-11-20 10:56:51 +08:00
    https://cloud.tencent.com/developer/article/1888426 ,善用搜索引擎:nginx resolver upstream
    似乎 upstream 和 resolver 没有良好解。
    eason1874
        2
    eason1874  
       2022-11-20 11:15:33 +08:00
    set 只能在 server, location, if 区域使用,map 可以在 stream 使用,可以用 map 代替
    ryd994
        3
    ryd994  
       2022-11-20 13:20:28 +08:00 via Android
    无解。文档写的很清楚:域名只在读取配置文件时解析,运行时只用 IP
    你可以自己写个脚本监控 nslookup 结果,如果有变化就给 Nginx 发信号 reload

    @eason1874 set 往下移动两行就是 server 区了
    manfred4527
        4
    manfred4527  
    OP
       2022-11-22 09:20:31 +08:00
    @eason1874 MAP 测试过也不行,不报错,但是不会改连接的 IP
    manfred4527
        5
    manfred4527  
    OP
       2022-11-22 09:21:24 +08:00
    @ryd994 看来只能按这个思路解决问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   984 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 20:46 · PVG 04:46 · LAX 12:46 · JFK 15:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.