前言
-
Nginx 是一个非常轻量级的服务器,他虽轻但是他最大的优点就是可以承载大量的并发,所以说一般的话很少有用 Node 直接去做服务器让用户去访问的,因为 Node 本身就需要做非 常非常多的事情,虽然说简单的可以使用 Node 直接开启,但是对于负载和并发 Node 是弱项,就是反向代理和并发是 Node 整个的弱项,所以我们需要在前面用 Nginx 挡一层,这样的话对于我们整个的系统的运维架构来讲也是一个非常得力的一个助手,还有就是跟其他的比如说我们后层整个架构的设计属于运维的这一块,它也是有一种先天优势的这样的服务器
Nginx概述:「链接」
主要结构
-
什么是反向代理与负载均衡 反向代理 负载均衡
-
Nginx 负载均衡的实现
-
HTTP UPstream 模块 什么是 HTTP Upstream 模块 ip_hash 指令 -- 落到哪个上 server 指令 -- server 的权重 UPstream 指令
-
其他负载均衡的方法 对于我们前端而言只需要将负载子我们的项目里面配置好就可以了不需要去太深入的学习,只要给人家运维一眼一口,然后知道怎么配合就完了,因为对于运维来讲,他们是不太懂 Node 的什么什么东西的,他们只会配这个 Nginx 的,所以说我们学这个的话只要学的够用就 ok 了
1. 什么是反向代理与负载均衡
-
反向代理
-
举例说明:
-
比如说平时我们上谷歌上不了然后需要翻墙,谷歌是我们明确的去要访问的站点,这个时候我们会用一些翻墙的工具(代理服务器),这个代理服务器帮我们取回谷歌给我们看,这个就是一个正向的代理
-
那么反向 代理刚好是相反的:我们不知道去取哪一台机器,然后代理帮我们去取,然后把取到的内容返回给我们
-
一个是明确的知道,一个是不知道,这就是正向代理和反向代理
-
上图解释
-
就是用自己的计算机 A 想访问国外的网站 B ,访问不了,就有一个中间的服务器 C 它去访问国外的网站 B ,其实如果是把这个 C 装到我们自己的电脑上,我们自己的电脑访问 C ,然后 C 再去访问 B ,这个时候这个 C 就叫代理服务器,这个时候就是正向代理,他有一个特点,就是我们一定知道要访问哪个网站
-
还有就是当我们有一个服务器集群,而且服务器集群中的每台服务器的内容都是一样的时候,同样我们从个人的电脑访问到比如说 现在我们有四台 Node 的机器 ,但是我们无法访问,这个时候有第三方的服务器是可以访问到 那四个 Node 的机器的 ,这个时候我们就可以借助这个第三方的服务器去访问, 但是我们并不知道它最后会落到四台中的哪一台机器上,这个就是反向代理
-
负载均衡
-
跟上面的反向代理有一个息息相关的东西就是负载均衡 就是上面的四台机器,你不知道最终要找的是谁,但是 Nginx 知道,它会帮你找到压力最小的那个服务器然后返回给你,就这样的可以分担你的压力
-
上图需要注意的点
-
在建立很多很多个服务器的时候,要确保每台服务器上的东西得是一样的
-
上图中所说的中间服务器,在本章中指的就是 Nginx
Linuxc/c++服务器开发高阶视频学习资料+602878196(VX同号)获取
内容包括C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,P2P,K8S,Docker,TCP/IP,协程,DPDK多个高级知识点。
关注VX公众号更多精彩视频分享:Linux C后台服务器开发
2. Nginx 负载均衡的实现