接入Cloudflare分为两步
- Cloudflare中注册站点
- 域名DNS修改
整个过程如下
1.) 访问Cloudflare面板,添加站点

2.) 选择免费版

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

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


5.) 按需配置

6.) 配置并开启SSL,使用的Cloudflare颁发的证书。
因为我的根域名是有阿里云证书的,且服务器强制重写http到https,所以选择严格。

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

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

由于配置了Cloudflare,会间接导致实际的用户客户端ip拿不到。但是Cloudflare考虑到了这一点,他们通过额外的两个请求头
x-forwarded-for、cf-connecting-ip传递过来的。
如果nginx想要获取客户端的真实ip,需效仿如下修改。
http {...server {...# 转发真正ipproxy_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;}
}