我已经把OpenResty的网络改到1penel-network 以便他可以反代到容器的内网别名。
我有一个容器,DNS别名为 web-latest,内网分配的IP是172.18.0.8。
在OpenResty上部署了一个网站,反代代理到http://web-latest
正常是可以访问的。
然后,我从新构建了一个web-latest,分配IP为172.18.0.9,并且把172.18.0.8给删除掉了。
这个时候,我在通过OpenResty进行访问,我看了错误日志,他还是把反代指向了172.18.0.8的这个地址。
然后,我只要重载一下OpenResty,就能被解析到172.18.0.9,并且正常访问。
我要怎么做,才能不重载,而正常解析到172.18.0.9。
我感觉像是DNS缓存,但是不知道应该怎么清理缓存。麻烦看一下。
这个确实是 DNS 缓存 你需要修改 Nginx 配置文件
具体怎么改 可以看一下 nginx 的文档 或者问一下 AI`
Ai的建议是要加上
resolver 127.0.0.11 valid=5s;
并且使用变量名进行反代,咱们界面上好像不能使用变量名进行反代,只能直接修改配置文件吗?
server {
listen 80;
server_name your-site.com;
# 127.0.0.11 是 Docker 内部 DNS
resolver 127.0.0.11 valid=5s;
location / {
# --- 关键修改:先定义变量 ---
set $backend_host "web-latest";
set $backend_port "80"; # 建议显式指定端口
# --- 关键修改:使用变量进行代理 ---
proxy_pass http://$backend_host:$backend_port;
# 注意:使用变量后,你可能需要手动处理 Host 头
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}