LNMP架构

244 阅读2分钟

概述

LNMP 是一种常见的 Web 服务架构,代表的是以下四个组件的组合:

  1. Linux:操作系统,提供服务器环境。
  2. Nginx:Web 服务器软件,用于处理 HTTP 请求、反向代理、负载均衡等。
  3. MySQL:数据库管理系统,负责数据的存储与管理(现在也可以用 MariaDB、PostgreSQL 等替代)。
  4. PHP:服务器端脚本语言,用于开发动态网页和处理业务逻辑。

LNMP 架构是 LAMP(Linux + Apache + MySQL + PHP)的一个变种,区别在于用 Nginx 替代了 Apache。相比 Apache,Nginx 更轻量、性能更好,尤其适合高并发场景。

总结起来,LNMP 主要用于搭建动态网站或 Web 应用,常见于 PHP 网站(如 WordPress、Discuz、Laravel 应用)的部署环境。

常见面试问题

1. 基础类

  • LNMP 各组件的作用分别是什么?

  • Nginx 和 Apache 有什么区别?为什么 LNMP 选用 Nginx?

  • 介绍 Nginx 的常用模块(如反向代理、负载均衡、静态资源处理)。

  • PHP 是如何与 Nginx 配合工作的?如何实现 PHP 解析?

  • 什么是 FastCGI?Nginx 是如何与 PHP-FPM 交互的?

  • MySQL 中常用的存储引擎有哪些?区别是什么?

2. 配置与优化类

  • 说说 Nginx 配置中 serverlocationupstream 的作用。
  • Nginx 如何实现动静分离?
  • LNMP 中如何配置 URL 重写(rewrite)?
  • 如何优化 LNMP 的高并发性能?
  • Nginx 中如何实现负载均衡?常见的负载均衡策略有哪些?
  • PHP-FPM 的 pm 模式有哪些?分别适合什么场景?
  • MySQL 中如何优化慢查询?如何使用 EXPLAIN

3. 故障排查类

  • LNMP 环境下,浏览器访问 502 Bad Gateway 可能的原因有哪些?如何排查?
  • Nginx 返回 403 Forbidden 常见原因是什么?
  • LNMP 环境下,PHP 页面长时间加载甚至超时的排查思路?
  • 网站突然变慢,你如何排查是 Nginx、PHP 还是 MySQL 的问题?
  • PHP-FPM 崩溃了,Nginx 会返回什么错误?如何处理?

4. 安全与扩展类

  • 如何限制 Nginx 单 IP 访问频率防止 CC 攻击?
  • PHP 配置中哪些参数可以提升安全性?比如 disable_functions
  • MySQL 如何做主从复制?读写分离如何实现?
  • LNMP 环境如何结合 HTTPS 部署?Nginx 中如何配置 TLS?
  • LNMP 架构下如何接入 Memcached/Redis 做缓存加速?

5. 实战类

  • 你有搭建过 LNMP 环境吗?简述部署流程。
  • 描述你做过的 LNMP 优化或实际排障经验。
  • LNMP 环境是否可以跑 Python、Java 应用?为什么?