一、静态网站和动态网站有什么区别

原笔记先从网站类型本身做了区分。

静态网站通常只包含:

  • HTML
  • CSS
  • JavaScript
  • 图片
  • 视频等静态资源

这类资源往往可以直接由 Nginx 返回,因此只需要 Web 服务器就能支撑较高访问量。

动态网站则不同。
它通常要依赖服务端语言和后端服务来处理请求,例如:

  • PHP
  • Java
  • Python
  • Golang

动态请求不是直接把一个现成文件发回去,而是要在服务端做处理后,再把结果返回给浏览器。

二、怎么快速初步判断一个请求更像动态资源

原笔记给了一个很实用的经验:

  • 可以先通过 URL 做初步判断
  • 如果 URL 中包含 ?&
  • 往往更像动态请求

这当然不是绝对规则,但在入门阶段非常有帮助,因为它能帮助你建立“静态资源”和“动态资源”的直觉差异。

三、常见动态网站架构有哪些

原笔记按开发语言列出了一些典型架构:

开发语言 常见架构
PHP LNMPLAMPWNMP/WAMP
Java LNMT,例如 Tomcat、Jetty、WebLogic、Jboss
Python LNMP(Python, uwsgi)
Golang LNMG

从这些名字里也能看出一个规律:
Web 架构通常是“Linux + Web 服务 + 语言运行环境 + 数据库或应用组件”的组合。

四、LNMP 为什么是 PHP 站点的经典架构

原笔记这部分重点讲的是 LNMP。
它通常可以理解为:

  • L:Linux
  • N:Nginx
  • M:MySQL 或 MariaDB
  • P:PHP

在 PHP 场景下,这套组合非常典型,因为它把职责分得很清楚:

  • Nginx 负责接收 HTTP 请求
  • PHP-FPM 负责处理 PHP 动态脚本
  • MySQL/MariaDB 负责保存业务数据

五、LNMP 处理请求的大致流程是什么

原笔记用两张流程图分别说明了:

  • Nginx 如何区分静态请求和动态请求
  • LNMP 如何协同处理动态请求

结合原笔记内容,可以把流程概括为:

1、用户发起请求
2、Nginx 先接收请求
3、如果是静态资源,Nginx 直接返回
4、如果是 PHP 动态请求,Nginx 把请求转给 PHP-FPM
5、PHP 代码执行过程中如果要查数据,会访问 MySQL/MariaDB
6、PHP 生成结果后返回给 Nginx
7、Nginx 再把最终响应返回给客户端

也就是说,动态网站和静态网站最大的差别就在于:

  • 静态请求主要是“直接取文件”
  • 动态请求是“先处理逻辑,再返回结果”

六、为什么不能把 PHP 代码直接丢给 Nginx 就结束

原笔记在“开发给了一份 PHP 代码,能不能直接部署到 Nginx”这个问题上,实际上是在引导理解一个关键事实:

  • Nginx 本身并不负责解析 PHP 代码
  • 它需要 PHP-FPM 这类 FastCGI 服务来处理动态脚本
  • 如果网站还要保存文章、用户、评论等数据,还需要数据库

所以部署动态网站时,不能只准备一个 Web 服务,还要把语言运行环境和数据库一起准备好。

七、小结

从静态站过渡到动态站时,最重要的是先理解“谁负责什么”:

  • Nginx 负责接收请求和处理静态内容
  • PHP-FPM 负责解析 PHP
  • MySQL/MariaDB 负责存储数据

把这层职责关系看清楚之后,再去实际部署 LNMP 和 WordPress,就会顺很多。