Nginx 介绍:
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
其特点是占有内存少,稳定性高,并发能力强,nginx的并发能力在同类型的网页服务器中表现较好。几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。官方数据测试表明能够支持高达 50,000 个并发连接数的响应。
Nginx的作用:
1. 正向/反向代理:
作为web服务器最常用的功能之一,尤其是反向代理。
2. 负载均衡:
大致分为2种策略:内置策略和扩展(外置)策略。
1)、内置策略:轮询,加权轮询,Ip hash。
2)、扩展策略:url_hash、fair 等等。
3. 动静分离:
分离前端动静资源,以提高网页访问资源访问速度。
作用详解:
1、正向代理:
作用:
①、访问原来无法访问的资源,比如外国网站。(VPN)
②、可以记录用户访问记录,对目标服务器隐藏用户信息。
③、对客户端访问做限制,进行认证校验。(结合htpasswd工具使用)
原理:
客户端发送请求给代理服务器,由代理服务器请求目标服务器的响应,再返回给客户端。(正向代理的对象是客户端)
奇奇怪怪的比喻:
穷人(客户端)治病缺钱,想要找富人(目标服务器)资助,却没有途径。此时穷人寻求红十字会(代理服务器)帮忙,红十字会通过各种方式联系到富人资助,红十字会再将这笔善款转发给对应的穷人。
该比喻中,富人不知道自己的捐赠款给了哪个穷人,穷人也不需要亲自找富人,只管找红十字会帮忙。
2、反向代理:
作用:
①、可以统一管理请求,对用户隐藏真实服务器信息。
②、负载均衡。
③、动静分离。
原理:
客户端发送请求给代理服务器,代理服务器将请求按规则分发给不同的真实服务器,再将响应返回给客户端。(反向代理的对象是服务端,对于客户端而言,反向代理服务器就像真实服务器一样)
奇奇怪怪的比喻:
一群程序员(客户端)经过长时间的加班,项目稳定上线了,领导奖励他们出去五星级餐厅(代理服务器)吃饭。大家分别点餐,程序员A点份“长沙臭豆腐”,程序员B点了份“隆江猪脚饭”,程序员C点了份“桂林米粉”。五星级餐厅将需求分别指派给不同的大厨(真实服务器),大厨完成菜品后通知餐厅,餐厅再将菜品配送给指定程序员。
该比喻中,五星级餐厅管理了一群大厨,程序员只管找餐厅要餐,无需管餐厅指派哪位大厨去做菜。
3、负载均衡:
用途:
①、高并发场景分流,防止雪崩。
②、合理配置服务器资源的使用效率,配置高的多干活。
策略简介:
①、轮询:默认的内置策略,每个请求按时间顺序逐一分配到不同的后端服务器,如果某一台服务器down掉,能自动剔除。
upstream backserver {
server 192.168.0.1;
server 192.168.0.2;
}
②、加权轮询:轮询策略的升级版,可指定轮询几率,weight(权重)和访问比率成正比,适用于服务器性能不均的情况。
upstream backserver {
server 192.168.0.1 weight=1;
server 192.168.0.2 weight=2;
}
③、ip hash:每个请求按访问ip的hash结果分配,使得每个ip固定访问一台服务器,可以解决session的问题(不推荐使用该策略解决session共享问题,推荐使用redis等缓存配合处理)。
upstream backserver {
ip_hash;
server 192.168.0.1:88;
server 192.168.0.2:80;
}
④、url_hash:第三方策略,按访问url的hash结果来分配请求,使每个url定向到同一台服务器,服务器为缓存时比较有效。
upstream backserver {
hash $request_uri;
server 192.168.0.1:8080;
server 192.168.0.2:8080;
server 192.168.0.3:8080;
server 192.168.0.4:8080;
}
server {
listen 8081 default;
server_name test.csdn.net;
charset utf-8;
location /get {
proxy_pass http://backserver;
}
}
⑤、fair:第三方策略,按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream backserver {
server 192.168.0.1;
server 192.168.0.2;
fair;
}
评论区