我有一个家庭服务器,我想托管多个网站。我的主服务器的IP每隔几个月更改一次,所以我有一个脚本检测IP更改,它更新了我用新IP设置的免费DNS提供程序。免费的dns是丑陋的。让我们说它是ugly.free-dns.com
我有两个域(example1.com和example2.com)。我希望CloudFlare拥有我的2个域名,并将请求路由到我丑陋的域名下。
我最初的计划是将CloudFlare上的每个urls分别命名为ugly.free-dns.com/example1和ugly.free-dns.com/example2,然后使用nginx反向代理来检测路径差异,然后路由到正确的本地端口,其中每个站点将分别托管在一个码头容器中。
我以前从未使用过cname (或nginx),结果发现你不能用路径来命名,这会给我的整个计划带来麻烦。一些研究表明,虚拟主机可能是我想要的,但我不确定如何与CloudFlare一起工作。我觉得自己有点过头了,所以我想找人帮忙。
发布于 2019-03-05 09:28:24
您可以直接使用CloudFlare API并避免使用ugly.free-dns.com,这样每次您更改IP时都可以在Cloudflare中直接更新它,下面是一个基本脚本:
#!/bin/sh
API=<your API key>
EMAIL=your@email.tld
ZONEID=<your ZONE ID>
RECORDID=<your record ID>
RECORDNAME=www
IP=$(curl -s http://myip.country/ip)
curl -fs -o /dev/null -XPUT "https://api.cloudflare.com/client/v4/zones/$ZONEID/dns_records/$RECORDID" \
-H "X-Auth-Email: $EMAIL" \
-H "X-Auth-Key: $API" \
-H "Content-Type: application/json" \
--data "{\"type\":\"A\",\"name\":\"$RECORDNAME\",\"content\":\"$IP\",\"ttl\":120,\"proxied\":true}"然后,您只需要配置Nginx来处理来自docs:names.html的域的所有请求。
server {
listen 80;
server_name example.org www.example.org;
...
}
server {
listen 80;
server_name *.example.org;
...
}
server {
listen 80;
server_name mail.*;
...
}
server {
listen 80;
server_name ~^(?<user>.+)\.example\.net$;
...
}https://stackoverflow.com/questions/54997214
复制相似问题