浅谈Nginx

一.Nginx是什么:

  • 是一个高性能的http服务器(部署前端页面)/Apache,网络第七层–应用层
  • 是一个代理服务器(统一出口) --> 必须实现负载均衡.

二.什么是负载均衡:

  • 了解负载均衡首先要了解什么是反向代理和正向代理.
1.正向代理:
  • 正向代理类似于一个跳板机,代理访问外部资源.也是这个道理.
  • 总结:正向代理是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获取到的内容返回给客户端,客户端必须要进行一些特别的设置才能够使用正向代理.
    image
2.反向代理:
  • 反向代理实际运行的方式就是以代理服务器来接收Intemet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器.
    image

两者的区别:
浅谈Nginx_第1张图片

3.负载均衡:
  • nginx扮演了反向代理服务器的角色.

  • 负载量:比如说客户端发送请求,nginx反向代理服务器接收到的请求数量,这个就是负载量.

  • 均衡规则:请求数量按照一定的规则进行分发到不同的服务器处理的规则,就是均衡规则/

  • 负载均衡:将服务器收到的请求按照规则分发的过程,就是负载均衡.

  • 负载均衡的五种策略:

    • 1、轮询(默认)
      每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
upstream backserver {
server 192.168.0.14;
server 192.168.0.15;
}
* 2、指定权重

指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

upstream backserver {
server 192.168.0.14 weight=8;
server 192.168.0.15 weight=10;
}
* 3、IP绑定 ip_hash

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

upstream backserver {
ip_hash;
server 192.168.0.14:88;
server 192.168.0.15:80;
}
* 4、fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

upstream backserver {
server server1;
server server2;
fair;
}
* 5、url_hash(第三方)

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

upstream backserver {
server squid1:3128;
server squid2:3128;
hash $request_uri;
hash_method crc32;
}

三.虚拟主机:

一种端口转发的规范(根据不同的规则进行请求转发).

  • 常用:基于 IP 的虚拟主机
    基于域名的虚拟主机
    基于端口的虚拟主机

四.Nginx怎么实现跨域问题(CORS),容灾?

首先了解什么是跨域问题:
  • 浏览器从一个域名的网页去请求另一个域名的资源是,域名,端口,协议任意一个不同,都会造成跨域问题.(浏览器的安全机制导致).
怎么用Nginx去解决跨域:
  • 通过配置反向代理路径
location /apis {
    rewrite  ^.+apis/?(.*)$ /$1 break;
    include  uwsgi_params;
       proxy_pass   http://localhost:1894;
       }
容灾:
  • 当一台服务器出现问题,阿么ng就会把请求转向下一台服务器,达到容灾的效果.

高可用 – 负载均衡

高并发 – 动静分离

高性能 – 微服务拆分

你可能感兴趣的:(微服务)