显示客户端IP的详细信息
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

2.8 KiB

CDN注意事项

转发原始客户端IP

若HTTP连接中存在 HTTP_X_FORWARDED_FOR 参数,echoIP优先选择其作为客户端IP,若不存在该参数则使用与服务器连接的IP地址作为客户端IP。因此CDN服务器必须在转发时附带该参数,绝大多数情况下CDN服务器会默认在其中填入客户端真实IP,但部分CDN服务商可能会自定义一个额外的参数来存放该数据,这种情况需要修改WEB服务器配置,将该参数内容拷贝到HTTP_X_FORWARDED_FOR 中。

若以上配置出错,可能会导致返回IP地址为CDN服务器IP而非客户端IP,在部署并启用CDN服务后务必测试该问题。

关闭服务器GZIP压缩

由于CDN向服务器请求的动态数据较短,压缩效果不大,而静态资源无需持续回源,开启压缩反而浪费服务器资源,因此无需在服务器上配置GZIP压缩,配置示例如下。

server {
    listen 80;
    listen [::]:80;
    server_name ip.dnomd343.top;
    location / {
        if ($http_user_agent !~* (curl|wget)) {
            return 301 https://$server_name$request_uri;
        }
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://127.0.0.1:1601;
    }
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name ip.dnomd343.top;
    ssl_certificate /etc/ssl/certs/dnomd343.top/fullchain.pem;
    ssl_certificate_key /etc/ssl/certs/dnomd343.top/privkey.pem;
    location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://127.0.0.1:1601;
    }
}

但CDN服务对客户端的压缩功能建议启用,如Brotli压缩或Gzip压缩,都支持的情况下优先选择前者。

CDN回源配置

CDN源站指向部署了echoIP的服务器,回源HOST使用当前echoIP域名,其DNS解析一般通过CNAME或NS方式指向CDN服务商提供的地址。

CDN服务建议开启HTTPS服务,如果支持 HTTP/2TLS1.3OCSP Stapling 等特性建议打开,但务必关闭强制HTTPS模式或HSTS功能,否则命令行请求需带上 https 前缀或在curl命令中使用 -vL 参数。

所有协议配置均为跟随客户端协议回源,若服务器上部署了多个不同主域名的服务,切记开启SNI回源功能。

关闭HTML优化功能

部分CDN服务商提供了文件优化功能,将网页文件进行精简,删去其中空白内容。此处务必关闭HTML优化功能,否则命令行请求可能出现格式错乱,但CSS与JS等的优化可正常开启。

CDN静态文件

echoIP的静态文件包括 /assets/ 目录下所有文件以及 /error 页面,其余路径均不建议配置为静态数据。

IPv6地址

若CDN支持IPv6服务,建议打开该功能,否则无法查询客户端IPv6地址。