目录
关闭原生nginx,并配置Openresty下的nginx配置文件,与原生nginx配置保持一样
一、php源码编译
软件下载:https://www.php.net/
软件编译:
# tar jxf php-7.4.6.tar.bz2
# cd php-7.4.6
# ./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-curl --with-iconv --with-mhash --with-zlib --with-openssl --enable-mysqlnd --with-mysqli --with-pdo-mysql --disable-debug --enable-sockets --enable-soap --enable-inline-optimization --enable-xml --enable-ftp --enable-gd --enable-exif --enable-mbstring --enable-bcmath --with-fpm-systemd
# make
# make install
注意:确保系统没有安装其他版本的php
二、启动php,并于nginx整合
1.添加到环境变量
测试php:通过整合nginx
测试:
三、php功能模块的扩展
之后make ,make install
测试:
压力测试:处理机制:client ----> nginx:80 *.php ----->phpfpm:9000---->nginx---->client
一旦当nginx将请求交给phpfpm后,客户端在这个过程中是阻塞的,它要等phpfpm处理完之后返回nginx,最后交给客户端,这是一个反向代理机制。
四、构建nginx高速缓存
上面可以看到,给php加了memcache缓存后,虽然请求没有报错,但是处理速度没有增加。所以利用nginx高并发,增加请求处理速度。上面一部分做的是传统的缓存策略,但是该策略请求处理速度不高。
传统的缓存策略
传统缓存策略给php增加了memcaceh缓存后,请求没有报错了,但是整体nginx吞吐量没有上来,因为nginx把php请求交给php后端后,客户端处于与nginx处于阻塞状态,想要达到告诉,需要将nginx前置放到nginx,由nginx去取,后端php同时可以加memcache缓存。nginx也可以做cdn。
高效缓存策略
请求时,nginx先看一下本地memcache缓存中有没有,没有命中时,再发给后端处理,去源站取数据,取完数据后返回,再在本地memcache中存一份。
软件包源码下载安装
之后安装 make; make install
关闭原生nginx,并配置Openresty下的nginx配置文件,与原生nginx配置保持一样
复制发布页面
修改配置文件,给nginx添加缓冲。
有多个缓冲时用负载均衡就可以
定义一个缓冲。
请求时,nginx先看一下本地memcache缓存中有没有,没有命中时,再发给后端处理,去源站取数据,取完数据后返回,再在本地memcache中存一份。下次直接访问就可以。
客户端测试
处理速度加快,没有让请求往后端走,因为在nginx缓存中就拿到了。后端php加速和nginx缓存加速可以一块用,起到双重加速的效果。
此前只有1167
更改以后:
复制其他页面进行测试