技术解析

不懂就问,有关 nginx 和 hosts 的问题
0
2021-05-31 12:25:59
idczone

nginx 配置如下

server {
      listen       9005;
      server_name  192.168.1.1;
      location /135app/ {
          proxy_pass http大带宽服务器://test135:8060;
      }
      location /246app/ {
          proxy_pass http://test246:8060;
      }
}

hosts 配置如下

10.10.1.2	test135
10.10.1.3	test135
10.10.2.5	test246

问题 1:10.10.1.2 失效不通的时候,nginx 是否会自动请求到 10.10.1.3 ? 不会的话,怎么配置 nginx 可以做到动态的解析域名?

问题 2:我实质是想通过域名和 DNS 去访问,若问题 1 无法解决的话,我在 resolv.conf 中添加 dns 地址后,nginx 配置需要做更改吗?


问题 1 upstream
问题 2 只要访问的 server_name 没变,配置就不用调整

回答下问题 1 (不一定都对,欢迎打脸),因为你这是配本机的 hosts,单次请求时应该是不会自动把失败的请求再转发到 10.10.1.3 去的,非 plus 版本的 Nginx 的动态解析域名需要用到 Nginx 的 resolver 配置以及域名服务器,可以参考[官方文档]( https://nginx.org/en/docs/http/ngx_http_core_module.htmlupstream,这种应该更适合 10.10.1.2 失效后还能恢复的情况,配置大概是:
```
upstream test135 {
least_conn;
server 10.10.1.2:8060 max_fails=3 fail_timeout=5s;
server 10.10.1.3:8060 max_fails=3 fail_timeout=5s;
}
```

域名解析你应该是用专门的域名解析服务来完成。
需要尝试多个后端做负载均衡的话,可以用 upstream,应该能满足你的需求了

好的 感谢 我尝试下

谢谢~ 我尝试下

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服