首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多台服务器运行在我的家庭电脑与CloudFlare?

问多台服务器运行在我的家庭电脑与CloudFlare?
EN

Stack Overflow用户
提问于 2019-03-05 07:09:14
回答 1查看 298关注 0票数 0

我有一个家庭服务器,我想托管多个网站。我的主服务器的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一起工作。我觉得自己有点过头了,所以我想找人帮忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-05 09:28:24

您可以直接使用CloudFlare API并避免使用ugly.free-dns.com,这样每次您更改IP时都可以在Cloudflare中直接更新它,下面是一个基本脚本:

代码语言:javascript
复制
#!/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的域的所有请求。

代码语言:javascript
复制
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$;
    ...
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54997214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档