Nginx第三天

Nginx第三天

一.FastCGI

CGI的由来:
最早的Web服务器只能简单地响应浏览器发来的HTTP请求,并将存储在服务器上的HTML文件返回给浏
览器,也就是静态html文件,但是后期随着网站功能增多网站开发也越来越复杂,以至于出现动态技
术,比如像php(1995年)、java(1995)、python(1991)语言开发的网站,但是nginx/apache服务器并不
能直接运行 php、java这样的文件,apache实现的方式是打补丁,但是nginx缺通过与第三方基于协议实
现,即通过某种特定协议将客户端请求转发给第三方服务处理,第三方服务器会新建新的进程处理用户
的请求,处理完成后返回数据给Nginx并回收进程,最后nginx在返回给客户端,那这个约定就是通用网
关接口(common gateway interface,简称CGI),CGI(协议) 是web服务器和外部应用程序之间的接口
标准,是cgi程序和web服务器之间传递信息的标准化接口。
在这里插入图片描述
为什么会有FastCGI?
CGI协议虽然解决了语言解析器和 Web Server 之间通讯的问题,但是它的效率很低,因为 Web Server
每收到一个请求都会创建一个CGI进程,PHP解析器都会解析php.ini文件,初始化环境,请求结束的时候
再关闭进程,对于每一个创建的CGI进程都会执行这些操作,所以效率很低,而FastCGI是用来提高CGI性
能的,FastCGI每次处理完请求之后不会关闭掉进程,而是保留这个进程,使这个进程可以处理多个请
求。这样的话每个请求都不用再重新创建一个进程了,大大提升了处理效率

1.1环境配置

先把之前的nginx删除

然后下载需要的安装包

重新下载nginx
在这里插入图片描述
安装php依赖

yum install -y bzip2 systemd-devel libxml2-devel sqlite-devel libpng-devel libcurl-devel oniguruma-devel

解压缩安装包

源码编译

[root@Nginx ~]# ./configure \
--prefix=/usr/local/php \ #安装路径
--with-config-file-path=/usr/local/php/etc \ #指定配置路径
--enable-fpm \ #用cgi方式启动程序
--with-fpm-user=nginx \ #指定运行用户身份
--with-fpm-group=nginx \
--with-curl \ #打开curl浏览器支持
--with-iconv \ #启用iconv函数,转换字符编码
--with-mhash \ #mhash加密方式扩展库
--with-zlib \ #支持zlib库,用于压缩http压缩传输
--with-openssl \ #支持ssl加密
--enable-mysqlnd \ #mysql数据库
--with-mysqli \
--with-pdo-mysql \
--disable-debug \ #关闭debug功能
--enable-sockets \ #支持套接字访问
--enable-soap \ #支持soap扩展协议
--enable-xml \ #支持xml
--enable-ftp \ #支持ftp
--enable-gd \ #支持gd库
--enable-exif \ #支持图片元数据
--enable-mbstring \ #支持多字节字符串
--enable-bcmath \ #打开图片大小调整,用到zabbix监控的时候用到了这个模块
--with-fpm-systemd #支持systemctl 管理cgi

配置文件

[root@Nginx ~]# cd /usr/local/php/etc
[root@Nginx etc]# cp php-fpm.conf.default php-fpm.conf
[root@Nginx etc]# vim php-fpm.conf

生成主配置文件

[root@Nginx php-fpm.d]# cd /root/php-8.3.9/
[root@Nginx php-8.3.9]# cp php.ini-production /usr/local/php/etc/php.ini
[root@Nginx ~]# vim /usr/local/php/etc/php.ini

在这里插入图片描述
生成启动文件

[root@Nginx ~]# cd /root/php-8.3.9/
[root@Nginx php-8.3.9]# cp sapi/fpm/php-fpm.service /lib/systemd/system/
[root@Nginx php-8.3.9]# systemctl start php-fpm.service
[root@Nginx php-8.3.9]# netstat -antlupe | grep php

在这里插入图片描述
在这里插入图片描述
配置Nginx转发

在这里插入图片描述
测试结果
在这里插入图片描述

2.php的动态扩展模块(php的缓存模块)

在这里插入图片描述

安装memcache模块

[root@Nginx ~]# tar -zxf memcache-8.2.tgz
[root@Nginx ~]# cd memcache-8.2/
[root@Nginx memcache-8.2]# phpize
[root@Nginx memcache-8.2]# dnf install autoconf -y
[root@Nginx memcache-8.2]# ./configure && make && make install

在这里插入图片描述

[root@Nginx memcache-8.2]# cd /usr/local/php
[root@Nginx php]# ls
bin  etc  include  lib  php  sbin  var
[root@Nginx php]# cd etc/
[root@Nginx etc]# ls
php-fpm.conf  php-fpm.conf.default  php-fpm.d  php.ini
[root@Nginx etc]# vim php.ini 

在这里插入图片描述
部署memcached

[root@Nginx ~]# dnf install memcached -y
[root@Nginx ~]# vim /etc/sysc
sysconfig/   sysctl.conf  sysctl.d/    
[root@Nginx ~]# vim /etc/sysconfig/memcached 
[root@Nginx ~]# systemctl start memcached.service 
[root@Nginx ~]# netstat -antlupe | grrep mem
-bash: grrep:未找到命令
[root@Nginx ~]# netstat -antlupe | grep mem

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

php -m

[root@Nginx memcache-8.2]# cp example.php memcache.php /data/web/php/
[root@Nginx memcache-8.2]# cd /data/web/php/
[root@Nginx php]# ls
example.php  index.php  memcache.php
[root@Nginx php]# vim memcache.php 

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

php高速缓存

在这里插入图片描述

nginx需要包含这两个包,若没有则需要从新编译安装

[root@Nginx ~]# tar zxf srcache-nginx-module-0.33.tar.gz
[root@Nginx ~]# tar zxf memc-nginx-module-0.20.tar.gz
[root@Nginx conf.d]# vim vhost.conf

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值