Nginx学习小结

Nginx有以下几大核心功能:
1、虚拟主机
2、反向代理
3、负载均衡
4、缓存
5、其他模块功能(重定向、防盗链、HTTPS、网页压缩)

一、虚拟主机
虚拟主机是Nginx最基础的功能,即用来搭建可通过HTTP协议访问的网站。一个虚拟主机与一个HOST地址一一对应,HOST即URL的域名部分(多级域名);不同的虚拟主机可以通过同一IP同一端口提供服务,用HTTP请求头中的HOST字段来区分。
如:abc.com是一个虚拟主机,www.abc.com可以是另一个虚拟主机,也可以配置为别名。

虚拟主机自身提供的只是静态资源,具体nginx即解析HTTP请求的URL路径后,会根据配置文件中的根目录来定位需要访问的文件,并最终反馈给请求客户端。
如配置文件设置根目录为 /html/abc,那么当访问www.abc.com/123.html时,实际上获取的是/html/abc/123.html这个文件。

二、反向代理
反向代理的意思是nginx只是作为暴露给客户端的服务请求入口,收到请求后ngnix会根据配置规则将请求转发到其它功能模块(本地或通过网络)。对于一个HTTP服务来说,可以提供静态资源和动态资源,静态资源就是文本、文件、图片、视频等等,动态资源就是需要查询数据库才能确认返回内容的页面,比如.php/.jsp/.asp/.cgi,其中嵌套了需要与后端服务或者数据库交互的程序。
当请求的是静态资源时,nginx作为反向代理需要先指定转发的后端服务,如访问其他HTTP服务器提供的图片,通过 proxy_pass这个命令指定host和端口;
当请求的是动态资源时,nginx作为反向代理需要转发到对应的后端服务,如PHP通常是转发给php的FastCGI通用网关接口(如PHP-FPM),JSP则是发给tomcat,这些服务进行对应语言代码解析,并查询相关功能模块访问数据库(oracle、mysql、memcache、redis等)。

三、负载均衡
负载均衡比较简单,upstream命令指定后端服务器组清单,proxy_pass把对应请求转发给这个upstream指定的服务器组即可。
大家关注比较更多的是负载均衡的算法,涉及比较多的主要就是轮询、加权轮询、ip hash、、最小连接数优先等等,新版本的nginx还包括cookie hash、url hash、header hash等。

ip hash可以实现同一个IP请求转发到同一个后端服务器,这样直接就支持了四层会话保持能力;cookie hash则可以实现七层会话保持能力。一篇关于此的博文:https://blog.csdn.net/lvshaorong/article/details/78309514

四、缓存
缓存可以认为是反向代理的一个子功能,可以配置临时缓存和永久缓存。像CDN就可以基于Nginx来搭建。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_36718740

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值