news 2026/7/7 16:07:20

LNMP架构学习

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LNMP架构学习

LNMP 就是 Linux+Nginx+MySQL+PHP , Linux 作为服务器的操作系统, Nginx 作为 Web 服务器、 PHP 作为解析动态脚本语言、 MySQL 即为数据库

Linux作为服务器的操作系统。

Nginx作为WebServer服务器。

PHP 作为动态解析服务(php)。

MySQL作为后端存储数据库服务

Nginx怎么和PHP连接

Nginx服务本身是无法进行处理PHP请求的,当用户发起了PHP动态请求,是用户–》http协议–》Nginx–》fastcgi协议—》php-fpm

注意:fatcgi是连接Nginx和PHP-fpm

Nginx与Fast-CGI工作流程

1.浏览器输入域名,浏览器会拿着域名取DNS服务器解析

2.DNS服务器会将域名解析成IP

3.浏览器会去与IP对应服务器建立TCP\IP连接

4.连接建立完成,会向服务器发起请求,请求nginx

5.nginx会判断请求是动态的还是静态的

#静态请求

location .jpg$ {

root /code;

}

#动态php请求

location .php$ {

fastcgi_pass 127.0.0.1:9000;

}

#动态jsp请求

location .jsp$ {

proxy_pass 127.0.0.1:8080;

}

6.如果是静态请求,nginx去code目录获取,直接返回

7.如果是动态请求,nginx会通过fastcgi协议连接PHP服务的php-fpm管理进程

8.php-fpm管理进程会下发工作给 wrapper工作进程

9.wrapper工作进程判断是不是简单的php内容

10.如果只是php内容则使用php解析器解析后直接返回

11.如果还需要读取数据库,wrapper工作进程会去数据库读取数据,再返回数据

12.数据流转过程:

1)请求:浏览器 > 负载均衡 > nginx > php-fpm > wrapper > mysql

2)响应:mysql > wrapper > php-fpm > nginx > 负载均衡 > 浏览器

LNMP用户访问资源流程

PHP怎么进行代理配置

PHP和Nginx之间是无法直接进行连接的,需要使用fastcgi进行连接

1)设置fastcgi服务器的地址,该地址可以指定为域名或IP地址,以及端口

Syntax: fastcgi_pass address;Default: — Context: location,ifinlocation#语法示例fastcgi_pass localhost:9000;fastcgi_pass unix:/tmp/fastcgi.socket;

2)设置fastcgi默认的首页文件,需要结合fastcgi_param一起设置

Syntax: fastcgi_index name;Default: — Context: http, server, location

3)通过fastcgi_param设置变量,并将设置的变量传递到后端的fastcgi服务器

Syntax: fastcgi_param parameter value[if_not_empty];Default: — Context: http, server, location#语法示例fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME /code$fastcgi_script_name;

4)通过图形方式展示 fastcgi_index 与 fastcgi_param 作用

5)Nginx连接Fastcgi服务器配置参考

server{server_name www.tf.com;listen80;root /code/www;index index.php index.html;location ~\.php${root /code/www;fastcgi_pass127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME$document_root$fastcgi_script_name;include fastcgi_params;}}

LNMP架构部署在一台主机上,怎么将数据迁移走

1、数据库拆分

单台服务器运行LNMP架构会导致网站访问缓慢,当内存被占满时,很容易导致系统出现oom,自动关闭(kill)MySQL数据库,所以要将web和数据库进行独立部署。

1.缓解web网站的压力

2.增强数据库读写性能

3.提高用户访问速度

1.2、拆分数据库的步骤
老服务器操作 指定导出对应的数据库文件。(Jy123.com是数据库密码)[root@web01 ~]# mysqldump -uroot -pTf123.com -A > $(date +%F)-mysql-all.sql拷贝备份数据库文件至新的数据库服务器上[root@web01 ~]# scp 2018-08-09-mysql-all.sql root@10.0.0.51:~新服务器操作 导入数据库 mysql -uroot -pTf123.com<2018-08-09-mysql-all.sql 登入数据库 mysql -uroot -pJy123.com 检查数据库是否所有的库都被成功导入 show databases;在新数据库上授权, 允许所有网段, 通过webadm账户连接数据库#授权所有权限 grant all privileges#授权所有库所有表 *.*#将授权赋予给哪个用户,这个用户只能通过哪个网段过来(%所有) 'webadm'@'%'#授权该用户登录的密码 identified bymysql>grant all on *.* to webadm@'%'identified by'Tf123.com';Query OK,0rows affected(0.00sec)mysql>flush privileges;Query OK,0rows affected(0.00sec)停止web本地数据库[root@web01 ~]# systemctl stop mysqld[root@web01 ~]# systemctl disable mysqld修改Wordpress产品代码连接数据库的配置文件vim/code/wordpress/wp-config.php# 数据库名称define('DB_NAME','wordpress');# 数据库用户define('DB_USER','webadm');# 数据库密码define('DB_PASSWORD','Jy123.com');# 数据库地址define('DB_HOST','10.0.0.51');
2、迁移图片至独立服务器 NFS

.nfs-server服务端操作

配置nfs共享的目录[root@nfs ~]# cat /etc/exports/data/blog10.0.0.0/24(rw,sync,all_squash,anonuid=666,anongid=666)/data/edu10.0.0.0/24(rw,sync,all_squash,anonuid=666,anongid=666)/data/zh10.0.0.0/24(rw,sync,all_squash,anonuid=666,anongid=666)创建对应共享的目录[root@nfs ~]# mkdir /data/{blog,edu,zh} -p[root@nfs ~]# chown -R www.www /data/[root@nfs ~]# systemctl restart nfs-server本地挂载
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/6 22:10:51

【dz-943】基于单片机的电压表监测仪

基于单片机的电压表监测仪 摘要 在电子设备调试、电路检修及实验教学等场景中&#xff0c;精准、便捷的电压监测是保障设备正常运行和操作安全的重要环节。传统电压表存在量程固定、操作繁琐等问题&#xff0c;难以满足多场景下不同电压范围的监测需求&#xff0c;而高精度数字…

作者头像 李华
网站建设 2026/7/7 6:41:38

sward全面介绍(15) - sward与soular相关联,实现统一登录

本篇文章将介绍&#xff0c;如何通过soular实现sward的统一登录 1、soular的安装与配置 1.1 安装 下载&#xff0c;点此下载&#xff0c;或直接使用命令在线下载安装包 wget -O tiklab-soular-1.1.5.rpm https://install.tiklab.net/app/install/soular/V1.1.5/tiklab-soula…

作者头像 李华
网站建设 2026/7/7 18:32:12

Java-IO流

IO (位于 java.io 包中) 一、概念 1. 流&#xff1a;数据在内存和其他存储设备传输的通道、管道。【理解】 2. 流的分类&#xff1a;【面试内容】 (1) 按照方向分&#xff1a;[以JVM内存为参照物] a. 输入流&#xff1a;将 [其他存储设备]中数据读入到[JVM内存]中 。->读 b.…

作者头像 李华
网站建设 2026/7/7 8:59:03

全栈开发者:雷池 WAF 受欢迎,不是超越谁,是它不打扰开发

我做全栈开发 8 年&#xff0c;从前端到后端都得管&#xff0c;安全这块一直是痛点。以前要么花大量时间研究安全规则&#xff0c;要么将就用简单工具&#xff0c;防护不到位。直到用了雷池&#xff0c;才发现安全工具也能做到 “不打扰开发”。之前维护一个电商小项目&#xf…

作者头像 李华
网站建设 2026/7/6 12:33:06

深入理解 Ascend C:昇腾 AI 芯片的高性能算子开发语言

引言&#xff1a;AI 算力时代的底层引擎随着人工智能技术从理论走向大规模产业落地&#xff0c;对计算性能、能效比和软硬件协同效率的要求日益严苛。传统通用处理器&#xff08;如 CPU、GPU&#xff09;在面对特定 AI 负载时逐渐显现出瓶颈&#xff0c;而专用 AI 加速芯片成为…

作者头像 李华
网站建设 2026/7/4 3:17:25

ComfyUI 升级 v0.4.0 踩坑记录:解决 TypeError: QM_Queue.task_done() 报错

记录于&#xff1a;2025年12月17日 ComfyUI version: 0.4.0 暂未适配v0.4.0的队列管理器旧版插件 comfyui_queue_manager 另一个可尝试替代的队列管理器 ac-comfyui-queue-manager Comfy.ICU 队列管理器介绍 ComfyUI 升级 v0.4.0 踩坑记录&#xff1a;解决 TypeError: QM_Queue…

作者头像 李华