当前位置: 首页 > news >正文

Nginx和Apache的区别

一。Nginx和Apache的优缺点和对比

Nginx 优点Apache 优点
性能与并发采用事件驱动模型,支持 10 万 + 高并发连接,资源(CPU / 内存)占用极低生态成熟,内置模块可直接处理动态内容,无需依赖第三方程序
配置与部署支持热部署(无需重启即可更新配置或升级),长期运行稳定性强支持.htaccess目录级配置,无需重启即时生效,对新手友好
功能特性静态资源处理效率极高,内置强大的反向代理和负载均衡功能模块丰富(数千个),支持复杂认证、日志分析等场景,兼容性极强
适用场景适配高并发场景(电商、视频网站)、静态资源为主、反向代理架构动态内容为主(如 WordPress)、配置频繁变更、传统企业应用
Nginx 缺点Apache 缺点
性能与并发动态内容处理需依赖后端程序(如 PHP-FPM),架构相对复杂多进程 / 线程模型,并发能力弱(通常数千级),资源占用高(内存是 Nginx 的 2-5 倍)
功能特性边缘场景解决方案较少,第三方模块生态不如 Apache 完善静态资源处理效率低,反向代理 / 负载均衡能力较弱
适用场景适配动态内容占比极高、配置频繁变更的场景不适用高并发、低配服务器或高密度部署场景不适用
差异点NginxApache
核心模型事件驱动(非阻塞 I/O)多进程 / 多线程(阻塞 I/O)
并发能力强(支持 10 万 + 并发)弱(通常支持数千并发)
动态内容处理依赖反向代理后端程序内置模块直接处理
资源占用极低较高(通常是 Nginx 的 2-5 倍)

 二.常见的状态页

1:请求继续执行操作的状态代码

100(继续):请求者应当继续提出请求,服务器收到了一部分内容,等待其余部分

101(切换协议):请求者已要求服务器切换协议,服务器已经确认并且准备切换

2.表示成功处理了请求的状态页

200(成功):服务器已成功处理了请求,表示服务器提供了请求的网页

201(已创建):服务器已接受请求,但尚未处理

202(已接受):服务器已经接受请求,但尚未处理

203(非授权信息):服务器已经成功处理请求,但返回的信息可能来自另一来源

204(无内容):服务器成功处理了请求,但是没有任何订单内容

206(部分内容):服务器成功处理了部分GET请求        

3:表示完成请求,需要进一步操作,通常是用来重定向的

300(多种选择):正对请求,服务器可以执行多种操作

302(临时移动):服务器目前从不同的网页想响应请求,但请求者应继续使用原来位置进行请求

304(未修改):自上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页的内容

307(临时重定向):服务器目前从不同的网页响应请求,但请求者应该继续使用原来的位置来进行以后的请求

4:表示请求可能出错,妨碍了服务器的处理\

400(错误请求):服务器不理解请求的语法

401(未授权):请求要求身份验证,对于需要登陆的网页,服务器可能返回此响应

403(禁止):服务器拒绝请求

404(未找到):服务器找不到请求的网页

405(方法禁用):禁用请求中指定的方法

406(不接受):无法使用请求的内容特性响应请求的网页

407(需要代理授权):与401相似,请求者应当授权使用代理

408(请求超时):服务器等候请求时,发生超时

5:请求时发生内部错误,这些错误可能是服务器本身的错误,而不是请求出错

500(服务器内部错误):服务器遇到了错误,无法完成请求

501(尚未实施):服务器不具备完成请求的功能

502(错误网关):服务器作为网关或者代理,从上游服务器收到无效响应

503(服务器不可用):服务器目前无法使用(超载或者停机维护),通常是暂时的状态

504(网关超时):服务器作为网关或者代理,但是没有及时从上游服务器收到请求

5055(HTTP版本不受支持):服务器不支持请求中所用的HTTP协议版本

http://www.lryc.cn/news/596947.html

相关文章:

  • Apache PDFBox深入实践
  • Apache JMeter 使用记录踩坑
  • MCP客户端架构与实施
  • Apache POI 介绍与使用指南
  • apache-doris安装兼datax-web配置
  • LNMP-zblog分布式部署
  • 【Unity Shader】Special Effects(十二)Glow 外发光(UI)
  • Unity × RTMP × 头显设备:打造沉浸式工业远控视频系统的完整方案
  • 如何在macOS上修改iPhone的定位
  • ESP32的ADF详解:5. Streams的API
  • 聊聊 Flutter 在 iOS 真机 Debug 运行出现 Timed out *** to update 的问题
  • 在AI深度嵌入企业业务的当下——AI时代的融合数据库
  • Qt 菜单与工具栏设计:提升用户体验
  • AI产品经理面试宝典第48天:产品设计与用户体验优化策略
  • 【数学建模 | Matlab】二维绘图 和 三维绘图
  • 国产数据库转向 “融合” 赛道:电科金仓的下一代形态定义之路
  • Leetcode力扣解题记录--第240题(矩阵搜索)
  • 大规模金融数据相关性并行计算系统设计与实现
  • Linux内存映射原理
  • 第十讲:stack、queue、priority_queue以及deque
  • Python-初学openCV——图像预处理(一)
  • 如何在 npm 上发布 Element Plus 二次封装组件
  • Parasoft为金融服务打造统一测试平台,提升安全、合规与交付效率
  • C++ Primer(第5版)- Chapter 7. Classes -005
  • ESP32的ADF详解:6. Audio Processing的API
  • Android 测试全指南:单元测试与UI测试框架详解
  • ESP-NOW实战:ESP32一对多无线通信方案(支持ESP8266兼容)
  • 【Spring Cloud Gateway 实战系列】进阶篇:过滤器高级用法、动态路由配置与性能优化
  • Android Studio中调用USB摄像头
  • CRMEB 单商户PRO多商户通用去版权教程