• 概述
    • 一款轻量级的 HTTP 服务器,采用事件驱动的异步非阻塞处理方式框架,这让其具有极好的 IO 性能,时常用于服务端的反向代理和负载均衡。
      占用内存少、启动速度快、并发能力强
      使用C语言开发
      扩展性好,第三方插件非常多
      应用广泛
      安装简单,配置简洁
  • 应用
    • 动静分离
      将网站静态资源(HTML,JavaScript,CSS,img等文件)与后台应用分开部署,提高用户访问静态代码的速度,降低对后台应用访问
      静态请求直接从 nginx 服务器所设定的根目录路径去取对应的资源,动态请求转发给真实的后台(前面所说的应用服务器,如图中的Tomcat)去处理。
      • 配置
        # 静态化配置,所有静态请求都转发给 nginx 处理,存放目录为 my-project
        location ~ .*.(html|htm|gif|jpg|jpeg|bmp|png|ico|js|css)$ {
        root /usr/local/var/www/my-project; # 静态请求所代理到的根目录
        }
        # 动态请求匹配到path为’node’的就转发到8002端口处理
        location /node/ {
        proxy_pass http://localhost:8002; # 充当服务代理
        }
      • 作用
        不仅能给应用服务器减轻压力,将后台api接口服务化,还能将前后端代码分开并行开发和部署。
    • 反向代理
      代购
      • 配置
        proxy_pass http://localhost:8000; # 反向代理配置,请求会被转发到8000端口
      • 作用
        保障应用服务器的安全(增加一层代理,可以屏蔽危险攻击,更方便的控制权限)
        实现负载均衡
        实现跨域(号称是最简单的跨域方式)
      • 应用场景
        CDN 服务
    • 负载均衡 #高可用
      在服务器集群中,Nginx 可以将接收到的客户端请求“均匀地”(严格讲并不一定均匀,可以通过设置权重)分配到这个集群中所有的服务器上
      • 配置
        upstream domain { server localhost:8000; server localhost:8001;}
        proxy_pass http://domain;
      • 作用
        分摊服务器集群压力
        保证客户端访问的稳定性——健康检查(服务器心跳检查)功能,会定期轮询向集群里的所有服务器发送健康检查请求,来检查集群中是否有服务器处于异常状态。
    • 正向代理
      vpn

参考站点

nginx

nginx documentation

NGINX开源社区

Nginx中文文档

Nginx开发从入门到精通 — Nginx开发从入门到精通 (taobao.org)