Bootstrap

【后端】用Mac搭建服务器 牛刀小试

长期更新,建议关注、收藏、点赞!


Mac OS 系统自带Apache、Nginx和PHP。

什么是反向代理?

反向代理 是一种网络架构,其中代理服务器接收客户端的请求,并将这些请求转发到一个或多个后端服务器上。客户端并不直接与后端服务器通信,而是与反向代理服务器通信,反向代理服务器再将请求转发给后端服务器处理,之后将响应结果返回给客户端。

反向代理与正向代理的区别

  • 反向代理:代理服务器代表服务器处理请求,将请求转发到内部的真实服务器。客户端不知情,所有请求都是通过反向代理进行转发。
  • 正向代理:代理服务器代表客户端处理请求,将客户端的请求转发到外部的服务器。客户端知道自己使用了代理。
特性反向代理正向代理
代理方向代理服务器代表服务器处理客户端请求代理服务器代表客户端处理外部请求
客户端知道吗客户端不知道自己正在访问反向代理客户端知道自己使用了代理
使用场景用于负载均衡、增强安全性、缓存、路由等用于客户端隐藏、访问控制、绕过防火墙等
代理目标将请求转发到后端服务器将客户端请求转发到外部目标服务器

多种服务器配置总结对比

特性ApacheNginxPHP
类型Web 服务器Web 服务器 & 反向代理服务器服务器端脚本语言
主要用途提供静态和动态内容,处理 HTTP 请求高效的静态内容处理,反向代理,负载均衡生成动态内容,处理服务器端逻辑
性能在处理高并发时性能较低,线程/进程模式高并发高性能,异步非阻塞事件驱动模型性能取决于 Web 服务器与 PHP 配置(如 FPM)
内存消耗较高,特别是在高并发时较低,能够高效处理大量并发请求主要依赖于 Web 服务器与 PHP 配置
配置复杂度配置灵活但较为复杂,支持模块化功能配置简洁,易于管理配置较简单,主要是 Web 服务器与 PHP 配合使用
适用场景中小型网站,需要高度定制的环境高并发、高流量网站,反向代理,负载均衡动态网页开发,用户交互,数据库操作等

常见组合:

  • Apache + PHP:适用于传统的动态网站,特别是需要用 .htaccess 进行目录级别的配置时。
  • Nginx + PHP-FPM:适用于高性能的 Web 应用,Nginx 负责处理静态资源和反向代理,PHP-FPM(FastCGI Process Manager)负责动态请求的处理。
  • Nginx + Apache + PHP:Nginx 作为反向代理处理静态请求,Apache 作为后端处理 PHP 请求,这种配置可以在特定场景下提供更高的性能和灵活性。
  • 选择建议:
  • 如果你需要处理大量的静态内容和高并发连接,选择 Nginx 可能是一个更好的选择。
  • 如果你需要一个高度可配置的 Web 服务器,并且处理动态内容的需求较高,可以选择 Apache
  • 如果你正在开发一个需要动态内容生成和数据库交互的网站,那么你需要 PHP 与 Web 服务器(如 Apache 或 Nginx)结合使用。

区分静态内容 or 动态内容,见链接【前后端】静态内容 v.s. 动态内容

;