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
ik 2021-05-26 19:50:26 +08:00 via iPhone
问题 1 upstream
问题 2 只要访问的 server_name 没变,配置就不用调整 |
2
justest123 2021-05-26 19:58:50 +08:00
回答下问题 1 (不一定都对,欢迎打脸),因为你这是配本机的 hosts,单次请求时应该是不会自动把失败的请求再转发到 10.10.1.3 去的,非 plus 版本的 Nginx 的动态解析域名需要用到 Nginx 的 resolver 配置以及域名服务器,可以参考[官方文档]( https://nginx.org/en/docs/http/ngx_http_core_module.html#resolver)中的介绍。
另外还有个思路是用 upstream,这种应该更适合 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; } ``` |
3
akira 2021-05-26 21:54:10 +08:00
域名解析你应该是用专门的域名解析服务来完成。
需要尝试多个后端做负载均衡的话,可以用 upstream,应该能满足你的需求了 |
5
Huozy OP @justest123 #2 谢谢~ 我尝试下
|