美文网首页
4.Nginx流行架构--LNMP

4.Nginx流行架构--LNMP

作者: 杨小倪 | 来源:发表于2019-09-26 16:33 被阅读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连接数据库的代码

    相关文章

      网友评论

          本文标题:4.Nginx流行架构--LNMP

          本文链接:https://www.haomeiwen.com/subject/lflnuctx.html