首页 > 其他分享 >@LNMP的架构体系

@LNMP的架构体系

时间:2022-10-09 23:33:08浏览次数:80  
标签:体系 00 架构 LNMP nginx web01 php root fastcgi


文章目录

LNMP

什么是LNMP?

LNMP是一套技术的组合,L=Linux、N=Nginx、M~=MySQL、P~=PHP、(ES、redis、kafka、zookeeper....)

LNMP工作方式

首先Nginx服务是不能处理动态请求,那么当用户发起动态请求时, Nginx又是如何进行处理的。
静态请求:请求静态文件或者html页面,服务器上存在的html文件
静态文件:上传时什么样子,访问时还是什么样子;
动态请求:请求的是动态内容,带参数的请求
动态页面不存在于服务器上,他可能是取数据库或者redis等地方取值拼凑成的页面

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

1.访问流程

1.浏览器发起请求,请求到达nginx;
2.nginx先判断请求是动态还是静态;
#静态请求
location / {
root /code;
index index.html;
}

#动态请求
location ~* \.php$ {
fastcgi_pass 127.0.0.1:9000;
}
5.php-fpm管理进程会去调用或者下发工作给wrapper工作进程;
6.wrapper工作进程判断php内容是否可以直接返回内容;
7.如果只是php内容,wrapper工作进程直接解析,并返回结果;
8.如果还需要访问数据库,则wrapper会去请求数据库获取数据,再返回。
9.最后数据由, 数据库mysql->wrapper->php-fpm->nginx->http->浏览器。

LNMP架构搭建

1.安装nginx

1)配置官方源

[root@web01 ~]# vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

2)安装nginx

[root@web01 ~]# yum install -y nginx

3)配置nginx

[root@web01 ~]# vim /etc/nginx/nginx.conf
user www;

4)创建用户

[root@web01 ~]# groupadd www -g 666
[root@web01 ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M

5)启动nginx,并加入开机自启

[root@web01 ~]# systemctl start nginx
[root@web01 ~]# systemctl enable nginx

6)验证启动

[root@web01 ~]# ps -ef | grep nginx
root 23769 1 0 11:26 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
www 23770 23769 0 11:26 ? 00:00:00 nginx: worker process
root 23816 8453 0 11:27 pts/1 00:00:00 grep --color=auto nginx

2.安装php

1)配置php第三方源

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

2)卸载已安装php

[root@web01 ~]# yum remove php-mysql-5.4 php php-fpm php-common

3)安装php 7.1版本

[root@web01 ~]# 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安装会有报错
1.上传压缩包(yum缓存)
[root@web01 ~]# cd /tmp/
[root@web01 tmp]# rz php.tar.gz
2.解压代码包
[root@web01 tmp]# tar xf php.tar.gz
3.安装本地rpm包
[root@web01 tmp]# yum localinstall -y *.rpm

4)配置php

[root@web01 ~]# vim /etc/php-fpm.d/www.conf
user = www
group =

5)启动php

[root@web01 ~]# systemctl start php-fpm
[root@web01 ~]# systemctl enable php-fpm

6)验证启动

[root@web01 ~]# ps -ef | grep php
root 24062 1 0 11:45 ? 00:00:00 php-fpm: master process (/etc/php-fpm.conf)
www 24063 24062 0 11:45 ? 00:00:00 php-fpm: pool www
www 24064 24062 0 11:45 ? 00:00:00 php-fpm: pool www
www 24065 24062 0 11:45 ? 00:00:00 php-fpm: pool www
www 24066 24062 0 11:45 ? 00:00:00 php-fpm: pool www
www 24067 24062 0 11:45 ? 00:00:00 php-fpm: pool www
root 24089 8453 0 11:46 pts/1 00:00:00 grep --color=auto php
[root@web01 ~]#

3.安装mariadb

1)安装

[root@web01 ~]# yum install -y mariadb-server

2)启动

[root@web01 ~]# systemctl start mariadb
[root@web01 ~]# systemctl enable mariadb

3)验证

[root@web01 ~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.64-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)

MariaDB [(none)]>

4.关联NP

1)配置nginx

[root@web01 conf.d]# vim php.conf
server {
listen 80;
server_name www.php.com;

location / {
root /code;
index index.html;
}
}

2)创建目录

[root@web01 ~]# mkdir /code
[root@web01 ~]# cd /code
[root@web01 ~]# chown -R www.www /code

3)上传作业代码

[root@web01 ~]# cd /code
[root@web01 code]# rz kaoshi.zip
[root@web01 code]# tar xf kaoshi.zip
[root@web01 code]# vim /code/upload_file.php
$wen="/code/upload";
#报错为413,因为上传文件过大,nginx默认上传文件大小为1m,超过1m就报413
413 Request Entity Too Large
解决方法:
[root@web01 conf.d]# vim /etc/nginx/nginx.conf
http {
... ...
client_max_body_size 20m;
... ...
}

#报错为405,因为nginx服务没有办法解析动态请求,没有跟php做关联

4)配置nginx关联php

[root@web01 conf.d]# vim php.conf 
server {
listen 80;
server_name www.php.com;

location / {
root /code;
index index.html;
}

location ~* \.php$ {
fastcgi_pass 127.0.0.1:9000;
#fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /code/$fastcgi_script_name;
include fastcgi_params;
}
}

5)nginx关联php语法

1> fastcgi_pass
#语法
Syntax: fastcgi_pass address;
Default: —
Context: location, if in location

fastcgi_pass 127.0.0.1:9000;
2> fastcgi_index
#语法
Syntax: fastcgi_index name;
3>fastcgi_param
#语法
Syntax: fastcgi_param parameter value [if_not_empty];
Default: —
Context: http, server, location

#语法模块 开始定义(标准格式)站点目录 php文件名字
fastcgi_param SCRIPT_FILENAME /code/$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

6)php上传文件限制

[root@web01 ~]# vim /etc/php.ini
#默认post请求字符串内容不超过8m
post_max_size = 20M
#默认上传文件大小不超过2m
upload_max_filesize = 20M

[root@web01 ~]# systemctl restart php-fpm


标签:体系,00,架构,LNMP,nginx,web01,php,root,fastcgi
From: https://blog.51cto.com/u_15166421/5742166

相关文章

  • @网络基础之网络设备及架构介绍
    网络基础之网络设备及结构介绍1、企业网络架构很大程度上取决于企业或机构的业务需求。小型企业通常只有一个办公地点,一般采用扁平网络架构进行组网。这种扁平网络能够满足......
  • 关于架构师:角色、能力和挑战
      导读:成为一名架构师可能是很多开发者的技术追求之一。那么如何理解架构?架构师是一个什么样的角色,需要具备什么样的能力?在架构师的道路上,会面临哪些挑战?本文作者道延......
  • 海乐淘商城系统--01前缀(功能介绍以及关于架构)
    系统功能图我要完成的部分系统功能管理后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。前台系统:用户可以在前台系统中进行注册、登录、浏览......
  • LNMP架构
    目录LNMP架构UWSGI服务部署LNMP架构LNMP是一套技术的组合,L=Linux、N=Nginx、M=MySQL、P=Python首先Nginx服务是不能处理动态请求,那么当用户发起动态请求时,Nginx又......
  • 《Spring Cloud与Docker微服务架构实战 》
     /*免责声明:全部内容都属于是段友分享,我只是属于整理。**/   /*  写在前边,个人觉得****弄一个积分下载,就是在自掘坟墓。表面上看起来是可以为个人赚积分,实际砍掉分享......
  • 用图看架构
      以下内容整理自尚硅谷周阳老师讲解的云架构,课中突出点大数据。但是javaEE和大数据是业务的两个支撑点,缺一不可。所以这个适合做业务的开发人员学习,也社适合做大数据的......
  • 实用五步法教会你指标体系的设计与加工
    今天我们来和大家聊一聊一个新话题,一个对于企业业务发展十分关键的东西——指标。指标建设是衡量企业业务效果的主要依据,本文结合自身实践经验和大家分享指标的设计与加工过......
  • 激活数据价值,探究DataOps下的数据架构及其实践丨DTVision开发治理篇
    据中国信通院发布,2012年到2021年10年间,我国数字经济规模由12万亿元增长到45.5万亿元,在整个GDP中的比重由21.6%提升至39.8%。顺应时代发展新趋势,“数据”成为新的生产要素已......
  • 《可伸缩服务架构:框架与中间件》- 免费直接下载
    /*免责声明:全部内容都属于是段友分享,我只是属于整理。**/   /*  写在前边,个人觉得****弄一个积分下载,就是在自掘坟墓。表面上看起来是可以为个人赚积分,实际砍掉分享交......
  • Flink架构优势及应用场景
       相对于传统的离线计算会存在数据反馈不及时的问题,很难满足急需实时数据做决策的场景Flink是对有界数据和无界数据进行有状态计算的分布式引擎,它是纯流式处理模式。......