nginx memcache缓存
1 基本
在一个lnmp架构中,nginx遇到动态资源,会反向代理,把请求发送到后端的php-fpm服务,php-fpm从mysql里读取数据,生产网页,然后返回给client。
如果流量大,php-fpm和mysql就会成为瓶颈,解决方案是增加一个memcached缓存。
nginx首先把$uri作为key,去memcached里查询value值,命中就直接把value返回给client。如果没有,则再通过php-fpm。php-fpm把数据返回给client,并在memcached里存放一份。
所以,这里需要nginx和memcached的连接,php和memcached的连接。
2 php安装memcache扩展模块
php本不支持操作memcahce,需要安装一个接口。
http://pecl.php.net/package/memcache下载memcache-2.2.7.tgz
1 2 3 4 5 6 7 8 | yum install m4 autoconf #安装相关依赖 /app/php/bin/phpize #运行phpize,不然memcache目录下没有configure文件 . /configure --with-php-config= /app/php/bin/php-config #安装扩展模块,使用php-config make && make install #安装 |
安装完后,会生成memcache.so。
php/lib/php.ini文件里,有个动态扩展的地方,把memcache.so加进去,重启php-fpm就行
在info.php里,可以验证安装
3 nginx直连memcache
1 2 3 4 5 | location / { set $memcached_key "$uri" ; memcached_pass 127.0.0.1:11211; error_page 404 /callback .php; } |
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步