- 概述
- 一款轻量级的 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 可以将接收到的客户端请求“均匀地”(严格讲并不一定均匀,可以通过设置权重)分配到这个集群中所有的服务器上
- 正向代理
vpn
参考站点
nginx
nginx documentation
NGINX开源社区
Nginx中文文档
Nginx开发从入门到精通 — Nginx开发从入门到精通 (taobao.org)