nginx简介
Nginx(发音同"engine x")是一个高性能的反向代理和 Web 服务器软件,最初是由俄罗斯人 Igor Sysoev 开发的。Nginx 的第一个版本发布于 2004 年,其源代码基于双条款 BSD 许可证发布,因其系统资源消耗低、运行稳定且具有高性能的并发处理能力等特性,Nginx 在互联网企业中得到广泛应用。
Nginx 是互联网上最受欢迎的开源 Web 服务器之一,它不仅提供了用于开发和交付的一整套应用技术,还是应用交付领域的开源领导者。Netcraft 公司 2019 年 7 月的统计数据表明,Nginx 为全球最繁忙网站中的 25.42% 提供了服务或代理,进一步扩大了其在主机域名领域的占有量,新增 5220 万个站点,总数达 4.4 亿个,市场占有率已经超过 Apache 4.89%。
得益于近几年云计算和微服务的快速发展,Nginx 因在其中发挥了自身优势而得到广泛应用,且有望在未来占有更多的市场份额。
2019 年 3 月,著名硬件负载均衡厂商 F5 宣布收购 Nginx,Nginx 成为 F5 的一部分。F5 表示,将加强对开源和 Nginx 应用平台的投资,致力于 Nginx 开源技术、开发人员和社区的发展,更大的投资将为开放源码计划注入新的活力,会主办更多的开放源码活动,并产生更多的开放源码内容。
官网:nginx
正向代理
代理客户端
反向代理
访问百度,请求的地址永远是www.baidu.com.
代理服务端
负载均衡
nginx提供的负载均衡策略有两种:
- 内置策略: 轮询 加权轮询 Ip hash
- 拓展策略:
轮询
加权轮询
权重更大的,接收的请求更多
iphash
对客户端请求的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题
动静分离
在软件开发中,有些请求是需要后端处理的,有些请求是不需要经过后端处理的(css,html等静态资源文件),这些不需要经过后端处理的文件称为静态文件.让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好拆分之后,我们就可以根据静态资源的特点将其做缓存操作.提高资源响应的速度.
负载均衡及反向代理配置
upstream loadbalance{
server 127.0.0.1:8080 weight=1;
server 127.0.0.1:8081 weight=2;
}
location / {
proxy_pass http://loadbalance;
}