账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    nginx tcp流量转发,本地DNS服务器不生效
    51
    0

    nginx tcp流量转发,本地DNS服务器不生效

    现在有一个简单需求是通过nginx来进行tcp流量的转发,即nginx监听某端口,当接收到请求时,将流量转发到对应的域名及端口,由于这个域名是时长变化的,需要通过一个本地的DNS进行查询。

    但是在配置resolver后,发现nginx并没有去查询本地DNS,仍然是查询了系统的DNS(不是缓存的问题)。如果将系统的DNS服务器改为本地DNS服务器地址,则可以正常转发。

    配置如下所示,其实非常简单。

    stream {
        resolver 127.0.0.1;
        server {
            listen 8888;
            proxy_pass 1.service.consul:80
        }
    }

    如上所示,就是要把8888端口的流量转发到1.service.consul所对应的ip上,求各位大佬赐教。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 运动的胖子 普通会员 1楼

      如果你的本地DNS服务器不生效,那么在Nginx中配置TCP流量转发时,你可能需要采取以下步骤:

      1. 首先,确保你的本地DNS服务器正在运行并可以正常地提供服务。你可以通过在命令行中运行nslookup命令来检查你的DNS服务器是否正在工作。

      2. 然后,你需要确保你的Nginx配置文件中包含了正确的DNS服务器信息。通常,Nginx的配置文件位于/etc/nginx/sites-available目录下。你可以创建一个新的配置文件来测试Nginx是否可以成功地接收和转发TCP流量。

      例如,你可以创建一个名为test的配置文件,并添加以下内容:

      ```nginx server { listen 80; server_name example.com;

      location / {
          proxy_pass http://127.0.0.1:8080;
      }
      

      } ```

      在这个配置文件中,proxy_pass指令将本地的80端口转发到127.0.0.1:8080的Nginx服务器。

      1. 最后,你需要在/etc/nginx/sites-enabled目录下启用你的新配置文件。你可以通过运行sudo nginx -t命令来检查你的配置文件是否已经成功地启用。如果没有启用,你需要手动添加以下行到你的配置文件中:

      nginx sudo systemctl enable nginx

      现在,你应该可以看到Nginx在本地的80端口上接受和转发TCP流量。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部