一、Nginx:

Nginx ("engine x"):是一个高性能的 HTTP 和反向代理服务器,

特点:占有内存少,并发能力强;能够作为负载均衡和代理服务器;启动简单,配置简洁,bug少,稳定性和安全性好。中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等

应用场景:做HTTP服务器、反向代理服务器、静态资源服务器

反向代理:代替真实服务器接收网络请求,然后将请求转发到真实服务器(作用:隐藏真实服务器,使真实服务器只能通过内网访问,保护了真实服务器不被攻击.配置负载均衡,减轻单台真实服务器的压力.配置主备服务器,保持服务稳定运行)如何配置:首先到DNS服务器做域名解析,如果是局域网在hosts文件中配置IP和域名对应关系.编辑nginx的nginx.conf文件,配置server_name为指向nginx服务器的域名,location拦截请求,如果是访问nginx本地资源则配置root,如果是反向代理到真实服务器则配置proxy_pass为服务器地址

1、为什么快:

Nginx采用的是异步非阻塞的epoll模型;

  1. apache是采用多线程多进程,一旦连接数增多,apache必然要生成更多的进程来响应请求,一旦进程多了,cpu对于进程的切换就频繁了,很耗资源和时间,所以就导致apache性能降低了;
  2. Nginx采用异步非阻塞epoll模型,对于Nginx来说,把一个完整的连接请求处理都划分成了事件,一个一个的事件。比如accept(),receive(),磁盘I/O,send()等,每部分都有相应的模块去处理。真正的核心就是事件收集和分发模块,这就是管理所有模块的核心。
  3. 例子:apache多线程进程类似于一对一的服务员,客人多,服务员就得增多,Nginx是把服务员分成了接客的,点菜的,上菜的等模块;
  4. Nginx 的编写有一个明确目标就是超越 Apache Web 服务器的性能。
  5. Nginx 提供开箱即用的静态文件,使用的内存比 Apache 少得多,每秒可以处理大约四倍于 Apache 的请求。 低并发下性能与 Apache 相当,有时候还低于
  6. 在高并发下 Nginx 能保持低资源低消耗高性能。还有高度模块化的设计,模块编写简单。配置文件简洁。这种性能提升的代价是降低了灵活性,例如能够以每个文件为基础覆盖系统范围的访问设置
  7. 实现7*24小时访问:可以两台机子互为热备,平时各自负责各自的服务。在做上线更新的时候,关闭一台服务器的tomcat后,nginx自动把流量切换到另外一台服务的后备机子上,从而实现无痛更新,保持服务的持续性,提高服务的可靠性,

2、作web服务器

Nginx 可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,比如 perl、php等。但是不支持java。Java 程序只能通过与 tomcat 配合完成。Nginx 专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率 ,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数。

3、正向代理

Nginx 不仅可以做反向代理,实现负载均衡。还能用作正向代理来进行上网等功能。正向代理:如果把局域网外的Internet 想象成一个巨大的资源库,则局域网中的客户端要访问 Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理。

 

4、反向代理

反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器 IP 地址。

 

5、负载均衡

将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡

 

Nginx负载均衡-分配策略:

轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。

weight:weight 代表权,重默认为 1,权重越高被分配的客户端越多,指定轮询几率,weight 和访问比率成正比,用于后端服务器性能不均的情况。

ip_hash:每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题。

 

6、动静分离

为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原来单个服务器的压力。

 

最后修改于 2020-09-08 16:46:05
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付
上一篇