Nginx

3次阅读
没有评论

Nginx 和 Apache 都是搭建 web 服务的工具,但是在性能方面 Nginx 要比 Apache 高,原因如下:

架构设计不同

Nginx Apache(httpd)
并发模型 事件驱动 多线程 / 多进程(MPM)
资源占用 内存消耗低,单进程支持高并发 每个连接占用独立线程 / 进程,消耗大
适用场景 高并发、静态内容、反向代理 动态内容(PHP 等)、模块化扩展

反向代理于负载均衡优势

  • Nginx:天生为反向代理设计,支持高性能的 Upstream 负载均衡
  • Apache:也可以做代理,配置复杂,性能不如 Nginx

静态文件处理效率

  • Nginx:直接通过 sendfile 系统发送文件,减少内核态与用户态的数据拷贝
  • Apache:默认适用传统文件读取方式,效率低

内存管理更高效

  • Nginx:使用固定内存池分配资源,减少频繁内存申请 / 释放的开销
  • Apache:进程模型导致内存碎片化问题严重

例如以菜鸟驿站为例:以前(Apache)到菜鸟有专门的人帮你在驿站内找快递,现在(Nginx)通过 3 -2-658 号码可以快速的在第三个货架第二行上快速查找。

Nginx 和 Apache 不能说哪个好,主要是设计方向不同,Nginx 多用于 web 的静态服务,Apache 多用于服务端的服务

反向代理作用

  • 节省公网 ip:域名解析到反向代理服务器上,代理到本地的服务器就不需要额外 IP 了
  • 提高安全性:减少反向代理服务器的直接攻击,还可以在代理服务器上提供一些安全策略,防止恶意流量和攻击
  • 统一访问入口:一个 nginx 可以代理多个后端服务器
  • 提高访问速度:可以将静态内容(图片、js、css)缓存到本地

防盗链

通过阻止非法资源盗用,能为你节省带宽和服务器资源。

location /{
         root html;
         index index.html index.htm;
}
location ~*\.(gif|jpgljpeglpng|bmp|swf|flv|mp4|webp|ico)${
         # maquge.com *.maquge.com; 定义自己的域名白名单,将白名单外的拦截
         valid_referers blocked  maquge.com *.maquge.com;
         if($invalid_referer){return 403;}
}

正文完
 0
评论(没有评论)
验证码