又掉进一个坑。
因为原来的服务器要到期了,不打算续费了,所以网站迁移到这台服务器。因为原来用的是nginx而且设置了很多rewrite,为了省事,也用nginx服务器,但是前面用caddy做了反代。
nginx和caddy都是docker的容器,启动起来分别测试,怎么都是正常的,但是就是域名反代以后无法访问。
反代用的是:reverse_proxy http://localhost:8080
想了半天才明白问题所在:在caddy容器里用localhost,指的是容器本身,而不是宿主机。而现在是你在容器里要访问外面的宿主机上的另一个容器,所以得用宿主机的localhost,也就是服务器的IP地址来访问。
docker exec -it caddy curl http://localhost:8080 这肯定出错的。
docker exec -it caddy curl http://宿主机IP:8080 这就没问题了。
所以反代要用:reverse_proxy http://宿主机:8080。