4.Nginx流行架构--LNMP

2019-09-26  本文已影响0人  杨小倪

第四十天 Nginx流行架构--LNMP

1.什么是LNMP

LNMP是一套技术的组合,是由:L=Linux、N=Nginx、M=MySQL/mariadb、P=PHP/Python 组成的。

2.LNMP架构是如何工作的?

首先Nginx服务是不能处理动态请求。

当用户发起http请求时,请求会被Nginx处理,如果是静态资源请求Nginx则会直接返回,如果是动态请求Nginx则通过fastcgi协议转交给后端的PHP程序处理,如图所示

img

3.Nginx与PHP、MySQL之间是如何工作的?

1.用户通过Http协议发起请求,请求会先抵达LNMP架构中的Nginx。

2.Nginx会根据用户发起的请求,进行location规则匹配。

3.location如果匹配到请求是静态的,则由Nginx读取本地直接返回。

4.location如果匹配到的请求时动态的,则由Nginx请求转发给fastcgi协议。

5.fastcgi收到后会将请求交给php-fpm 进程管理,php-fpm 管理经常接收后会调用具体的工作进程warrap。

6.warrap进程会调用php程序进行解析,如果只是解析代码,PHP直接返回。

7.如果有查询数据库操作,则由php连接数据库(使用用户名、密码 IP的方式)发起查询操作。

8.最终数据 mysql-->php-fpm-->fastcgi-->nginx-->http-->user

img

4.如何安装LNMP架构

[root@web01 ~]# cat /etc/yum.repos.d/php.repo 
[webtatic-php]
name = php Repository
baseurl = http://us-east.repo.webtatic.com/yum/el7/x86_64/
gpgcheck = 0

    yum install nginx -y
    yum remove php-mysql-5.4 php php-fpm php-common
    yum -y install php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb
    yum install mariadb mariadb-server -y

[root@web01 ~]# yum isntall mariadb mariadb.server -y
[root@web01 ~]# systenctl start mariadb
启动nginx php-fpm
    systemctl start nginx
    systemctl start php-fpm

5.Nginx与PHP集成原理

1.编写能解析PHP的Nginx配置文件

[root@web01 conf.d]# cat php.oldxu.com.conf 
server {
    listen 80;
    server_name php.oldxu.com;
    root /code;

    location / {
        index index.php;
    } 

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

2.编写PHP代码,测试访问效果

[root@web01 conf.d]# cat /code/info.php
    <?php
        phpinfo();
    ?>

3.host 劫持

6.PHP与mysql集成原理

1.启动数据库

[root@web01 ~]# systemctl start mariadb

2.配置连接密码

[root@web01 ~]# mysqladmin password oldxu.com

3.测试登录mysql

[root@web01 ~]# mysql -uroot -poldxu.com
MariaDB [(none)]>

4.编写PHP连接数据库的代码

上一篇下一篇

猜你喜欢

热点阅读