二饭 2024-01-10 22:32 采纳率: 0%
浏览 20
已结题

Nginx反向代理缓存问题

操作系统:Ubuntu 20.04.6
Nginx版本:nginx/1.18.0 (Ubuntu)

问题如下:A域名使用的是DDNS动态解析IP,也就是说A域名绑定的IP是会经常变化的;B域名不会变,在B域名绑定的服务器上做了Nginx反向代理到A域名,但A域名绑定的IP变了后Nginx代理的还是原IP,如何让Nginx反向代理不保留DNS缓存或保留较短时间的DNS缓存。

补充:
① 我已经使用了resolver配置设置DNS缓存时间30秒,但不生效。

resolver 223.5.5.5 114.114.114.114 valid=30s;

② 下面是所有与反向代理相关的配置:

server {
    listen 443 ssl;    
    server_name  域名;
    ...省略ssl配置...
    resolver 223.5.5.5 114.114.114.114 valid=30s;

    location /online {
         rewrite  ^.+online/?(.*)$ /$1 break;  
        proxy_pass   A域名;
        proxy_set_header X-real-ip $remote_addr;
   }
}

③ 使用dig解析域名返回的IP也是最新的,但Nginx代理后的域名IP还是旧的。

  • 写回答

1条回答 默认 最新

  • 朱我家宝贝儿幸运 2024-01-11 17:34
    关注

    1、可以使用Tengine,Tengine支持动态DNS解析,https://tengine.taobao.org/document_cn/http_upstream_dynamic_cn.html
    2、改成如下的格式,需要验证

    server {
        listen 80;
        server_name www.test.com;
    
        resolver 127.0.0.1 valid=60s;
        resolver_timeout 3s;
    
        set $proxy_url "proxy.test.com";
        location / {
            proxy_set_header Host proxy.test.com;
            proxy_pass http://$proxy_url;
        }
    }
    ```bash
    
    
    
    

    ```

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月17日
  • 创建了问题 1月10日

悬赏问题

  • ¥30 关于用python写支付宝扫码付异步通知收不到的问题
  • ¥50 vue组件中无法正确接收并处理axios请求
  • ¥15 隐藏系统界面pdf的打印、下载按钮
  • ¥15 MATLAB联合adams仿真卡死如何解决(代码模型无问题)
  • ¥15 基于pso参数优化的LightGBM分类模型
  • ¥15 安装Paddleocr时报错无法解决
  • ¥15 python中transformers可以正常下载,但是没有办法使用pipeline
  • ¥50 分布式追踪trace异常问题
  • ¥15 人在外地出差,速帮一点点
  • ¥15 如何使用canvas在图片上进行如下的标注,以下代码不起作用,如何修改