因为部署到服务器上,单核服务器,今天查看服务器的时候发现如果手机打开一个app,感觉QPS有20以上了,CPU占用率最高能到10%。

为了优化响应速度,所以这里在OpenResty上配置缓存,贴上关键的缓存配置

http 块的配置,开启缓存

    #缓存控制    proxy_cache_path /var/cache/openresty levels=1:2 keys_zone=dns_cache:10m max_size=1g inactive=8h use_temp_path=off;

server 块的配置

因为用的是doh请求,数据是base64加密后的,所以 request_uri 比较长,这里用了 MD5进行哈希,目的是减少缓存Key的长度,提高Nginx的性能。

如果是直连服务器的话,配置上 remote_addr 访问者IP组合起来作为缓存Key。用于获取最近的IP。(如果是用了CDN,remote_addr应该是拿不到真实IP的,需要自己用CDN传递进来的头部信息)

缓存时间大小哪些自己看着调节就行。

        proxy_cache                    dns_cache;        set_md5 $hash_key              "$request_uri|$remote_addr";        proxy_cache_key                $hash_key;        proxy_cache_valid              200 1h;

测试使用nginx缓存后,打开一个APP,服务器CPU占用率大约不到1%,很满意