统计
  • 文章总数:34 篇
  • 评论总数:0 条
  • 分类总数:4 个
  • 最后更新:2023年04月25日

Nginx 反向代理 DDNS 的 Resolver DNS 缓存问题!(解决Nginx经常性出现反代失效)

本文阅读 3 分钟
首页 运维知识 正文

其实很早之前就遇到了这个问题,因为懒没有深究所以就弄了个定时重启脚本解决了,但是最近小区旁边修有轨电车,老是弄断电信的光纤,我家也跟着时不时断网,路由里面的 DDNS 就随着断断续续的网络反复解析,然后我的 File Browser 又是用的反代,解析太频繁导致 VPS 上面的 Nginx 根本等不及脚本自动重启。我人又在外地毕竟是个长期使用问题,总得想个办法彻底解决,于是就走上了度娘这条不归路,一搜文章倒是挺多但根据上面的配置也完全不起作用(全是转载水文),索性干脆换谷歌,大概折腾了半个小时找到了一篇博文顺利解决这个问题,这里就做一下记录,顺便留给有相同问题的同学。

Nginx 是默认机制是重启 Nginx 才会更新DNS,所以对于反代需求的MJJ们如果本地IP发生变成,反代的网站就会打不开。下面的方法可以解决这个问题。

Nginx 站点配置文件(非全局配置文件)

server 
 {
   listen 80;
   server_name A.Ai.Mr;
    #代理域名

   resolver 8.8.8.8 valid=10s;
    #resolver 114.114.114.114 8.8.8.8 valid=10s;
    #DNS地址,缓存刷新时间
   resolver_timeout 1s;
    #查询超时时间
   set $service_lb B.Ai.Mr;
    #被代域名

   location / {
   proxy_pass https://$service_lb:666;
    #被代端口
  }
 }

A.Ai.Mr 是访问域名,resolver 是 DNS 服务器地址(国外 VPS 推荐 8.8.8.8),valid 是 DNS 的缓存刷新频率(时间长短可以自定义,最好别低于 10s),resolver_timeout 是 DNS 查询超时时间(这个可以保持 1s 默认),B.Ai.Mr 是反代域名,:666 是反代端口。这个配置的意思就是每隔 10 秒查询一次反代域名的解析地址并应用。

下面是这写好的正在使用的代码(宝塔面板):

#PROXY-START/
resolver 8.8.8.8 valid=20s;
set $qh_ddns disk.baidu.com;
location ~* \.(gif|png|jpg|css|js|woff|woff2)$
{
    proxy_pass http://$qh_ddns:888;
    proxy_set_header Host disk.baidu.com;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    expires 12h;
}
location /
{
    proxy_pass http://$qh_ddns:888;
    proxy_set_header Host disk.baidu.com;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    
    add_header X-Cache $upstream_cache_status;
    
    #Set Nginx Cache
    
    
    proxy_ignore_headers Set-Cookie Cache-Control expires;
    proxy_cache cache_one;
    proxy_cache_key $host$uri$is_args$args;
    proxy_cache_valid 200 304 301 302 1m;
}

#PROXY-END/
本文来自投稿,不代表本站立场,如若转载,请注明出处:
宝塔nginx设置只有指定ip可以访问网址
« 上一篇 12-12
国内知名公共 DNS 服务器 IP
下一篇 » 12-12