侧边栏壁纸
博主头像
一朵云的博客博主等级

拥抱生活,向阳而生。

  • 累计撰写 67 篇文章
  • 累计创建 25 个标签
  • 累计收到 7 条评论

目 录CONTENT

文章目录

Nginx -- 基本介绍

一朵云
2021-12-27 / 0 评论 / 1 点赞 / 7457 阅读 / 4468 字

nginx01.png

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工具使用)

原理:

  客户端发送请求给代理服务器,由代理服务器请求目标服务器的响应,再返回给客户端。(正向代理的对象是客户端)

image.png

奇奇怪怪的比喻:

  穷人(客户端)治病缺钱,想要找富人(目标服务器)资助,却没有途径。此时穷人寻求红十字会(代理服务器)帮忙,红十字会通过各种方式联系到富人资助,红十字会再将这笔善款转发给对应的穷人。

  该比喻中,富人不知道自己的捐赠款给了哪个穷人,穷人也不需要亲自找富人,只管找红十字会帮忙。

2、反向代理:

作用:

  ①、可以统一管理请求,对用户隐藏真实服务器信息。

  ②、负载均衡。

  ③、动静分离。

原理:

  客户端发送请求给代理服务器,代理服务器将请求按规则分发给不同的真实服务器,再将响应返回给客户端。(反向代理的对象是服务端,对于客户端而言,反向代理服务器就像真实服务器一样)

image.png

奇奇怪怪的比喻:

  一群程序员(客户端)经过长时间的加班,项目稳定上线了,领导奖励他们出去五星级餐厅(代理服务器)吃饭。大家分别点餐,程序员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; 
} 
1

评论区