概述
LNMP 是一种常见的 Web 服务架构,代表的是以下四个组件的组合:
- Linux:操作系统,提供服务器环境。
- Nginx:Web 服务器软件,用于处理 HTTP 请求、反向代理、负载均衡等。
- MySQL:数据库管理系统,负责数据的存储与管理(现在也可以用 MariaDB、PostgreSQL 等替代)。
- 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 配置中
server、location、upstream的作用。 - 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 应用?为什么?