6.nginx动静分离

动静分离

概念:
LNMP架构介绍
LNMP:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。Mysql是一个小型关系型数据库管理系统。PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。

原理:浏览器发送http request请求到服务器(Nginx),服务器响应并处理web请求,将一些静态资源(CSS,图片,视频等)保存服务器上,然后将php脚本通过接口传输协议(网关协议)PHP-FCGI(fast-cgi)传输给PHP-FPM(进程管理程序),PHP-FPM不做处理,然后PHP-FPM调用PHP解析器进程,PHP解析器解析php脚本信息。PHP解析器进程可以启动多个,进行并发执行。然后将解析后的脚本返回到PHP-FPM,PHP-FPM再通过fast-cgi的形式将脚本信息传送给Nginx.服务器再通过Http response的形式传送给浏览器。浏览器再进行解析与渲染然后进行呈现。
动静分离,通过中间件将动态请求和静态请求进行分离,分离资源,减少不必要的请求消耗,减少请求延时。

好处:动静分离后,即使动态服务不可用,但静态资源不会受到影响

通过中间件可以将动态请求和静态请求进行分离
实验:
动静分离lnmp
#已经安装nginx
#安装mariadb
yum -y install mariadb*

#php安装编译
yum -y install gd libxml2-devel libjpeg-devel libpng-devel libXpm-devel
tar -zxf php-5.5.38.tar.gz 
cd php-5.5.38/
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php --with-gd --with-zlib --with-jpeg-dir=/usr/lib --with-png-dir=/usr/lib --with-mysql=mysqlnd --with-mysqli=mysqlnd --enable-fpm --enable-mbstring && make && make install      #httpd影响编译,检查htppd安装,--enable-fpm  开启php-fpm程序

#配置php解析器的配置文件
cp /root/php-5.5.38/php.ini-development  /usr/local/php/php.ini   #解压包的配置文件复制到安装目录
vim /usr/local/php/php.ini
202 short_open_tag = On                                 #开启php-fpm程序
680 default_charset = "UTF-8"                           #中文编码
 
#php-fpm启动脚本
cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm     #复制php-fpm启动脚本
chmod +x /etc/rc.d/init.d/php-fpm                       #为启动脚本加权限
chkconfig --add php-fpm                                 #检查启动脚本

#php-fpm程序的配置文件
cp /usr/local/php/etc/php-fpm.conf.default  /usr/local/php/etc/php-fpm.conf
vim php-fpm.conf
    25 pid = run/php-fpm.pid                            #开启pid设置
   164 listen = 192.168.5.4:9000                        #php的监听端口
/etc/rc.d/init.d/php-fpm start                          #启动php-fpm
netstat -anput |grep 9000
tcp        0      0 192.168.2.10:9000       0.0.0.0:*               LISTEN      

#验证访问静态页面
echo "nginx1" > /usr/local/nginx/html/index.html 
curl 192.168.5.4
nginx1

#验证访问动态页面,不调用后端的数据库,nginx--php
vim /usr/local/nginx/conf/nginx.conf      
      location ~\.php$ {                      #写个location把所有以php结尾的请求匹配到这个location,转发到PHP处理
            root html;
            fastcgi_pass   192.168.5.4:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi.conf;
                                                                                }
#配置要访问的PHP页面(php配置页面)
vim /usr/local/nginx/html/index.php
<?
phpinfo();
?>
#访问
firefox 192.168.5.4/index.php
 
#验证访问动态页面,需要调用数据库,nginx+php+mysql
#mariadb授权准备
systemctl start mariadb
mysql -uroot -p                                            #初始登录不需要密码
MariaDB [(none)]> SET password=PASSWORD('admini');         #设定密码
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> grant all on *.* to 'root'@'192.168.5.%'  identified by "admini";
Query OK, 0 rows affected (0.00 sec)

#允许域名使用的授权
   #MariaDB [(none)]> grant all on *.* to 'root'@'www.qqq.com'  identified by "admini";
   #Query OK, 0 rows affected (0.00 sec)

#刷新授权
MariaDB [(none)]> flush privileges;                        
Query OK, 0 rows affected (0.00 sec)

#修改php页面文件,使其调用数据库
vim /usr/local/nginx/html/index.php
<?
$conn=mysqli_connect('192.168.5.4','root','123.com');      #使用这个账号密码和数据库IP地址连接数据库
if($conn) {
        echo  "mysql connect success";                      #成功则打印此项
}
else {
        echo "mysql connect failed";                        #不成功则打印此项
}
?>
firefox 192.168.5.4/index.php
mysql connect success

#部署discuz开发写好的页面包   
论坛部署在lnmp当中
[root@localhost ~]# unzip Discuz_7.2_FULL_SC_UTF8.zip
[root@localhost ~]# cp -r upload/* /usr/local/nginx/html/
cp:是否覆盖"/usr/local/nginx/html/index.php"? y
[root@localhost ~]# chmod -R 777 /usr/local/nginx/html/
[root@localhost ~]# firefox 192.168.2.10/install/index.php
192.168.2.10/index.php

/usr/local/nginx/html/
[root@localhost ~]# firefox 192.168.2.10/install/index.php
192.168.2.10/index.php


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值