域名接入CloudFlare

接入Cloudflare分为两步

  1. Cloudflare中注册站点
  2. 域名DNS修改

整个过程如下

1.) 访问Cloudflare面板,添加站点

域名接入CloudFlare_第1张图片

2.) 选择免费版

域名接入CloudFlare_第2张图片

3.) 查看并明确DNS记录,其中服务的解析地址填写自己实际的服务器ip

域名接入CloudFlare_第3张图片

4.) 去域名管理控制台,移除旧DNS服务器,添加新DNS服务器

域名接入CloudFlare_第4张图片

域名接入CloudFlare_第5张图片

5.) 按需配置

域名接入CloudFlare_第6张图片

6.) 配置并开启SSL,使用的Cloudflare颁发的证书。

因为我的根域名是有阿里云证书的,且服务器强制重写http到https,所以选择严格。

域名接入CloudFlare_第7张图片

但我的子域名没有证书,对于服务器来说可以通过http访问。如果我想要通过Cloudflare的https访问,只要单独配置为灵活即可。

域名接入CloudFlare_第8张图片

准备就绪,说是24小时,实际等待也就半个点,直接进行测试一下。

域名接入CloudFlare_第9张图片

由于配置了Cloudflare,会间接导致实际的用户客户端ip拿不到。但是Cloudflare考虑到了这一点,他们通过额外的两个请求头x-forwarded-forcf-connecting-ip传递过来的。

如果nginx想要获取客户端的真实ip,需效仿如下修改。

http {
    ...
    server {
        ...
        # 转发真正ip
        proxy_set_header Host $host;
        # 转发cloudflare请求头,可能为空
        proxy_set_header x-forwarded-for $http_cf_connecting_ip;
        # 转发cloudflare请求头,可能为空
        proxy_set_header Proxy-Client-IP $http_x_forwarded_for;
        proxy_set_header WL-Proxy-Client-IP $remote_addr;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
    }
}

你可能感兴趣的:(程序员,cloudflare)