4.Nginx流行架构--LNMP
第四十天 Nginx流行架构--LNMP
1.什么是LNMP
LNMP是一套技术的组合,是由:L=Linux、N=Nginx、M=MySQL/mariadb、P=PHP/Python 组成的。
2.LNMP架构是如何工作的?
首先Nginx服务是不能处理动态请求。
当用户发起http请求时,请求会被Nginx处理,如果是静态资源请求Nginx则会直接返回,如果是动态请求Nginx则通过fastcgi协议转交给后端的PHP程序处理,如图所示
img3.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
img4.如何安装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连接数据库的代码