运维篇——Nginx上篇
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
一、Nginx介绍 Nginx(发音为 "engine-x")是一款开源的、高性能的HTTP服务器和反向代理服务器,同时也提供了IMAP/POP3/SMTP的代理功能。它最初由俄罗斯的程序员Igor Sysoev开发,并于2004年首次公开发布。Nginx以其高效、稳定、低资源消耗以及高并发处理能力而闻名,被广泛用于静态内容服务、负载均衡、HTTP缓存、以及作为反向代理服务器来管理后端的服务请求。(ps:百度搜的) 接下来就从负载均衡、反向代理&正向代理、动静分离三个用途给大家介绍一下。 二、Nginx 负载均衡 什么是负载均衡呢?给大家举个贴切生活的例子,大家去超市买东西,买完后准备去结账,前台有三个收银台,但是都排在第一个收银台,队伍又臭又长,一号收银员忙的飞起,二号跟三号闲着刷手机,这时候就需要一个正义的人站出来,没错就是超市老板来了,把顾客一个一个分到二号跟三号收银台去,这样三个收银台都在工作了,而且每个人也不会太累。 这里顾客就代表访问网站的用户,收银台和收银员就是后端的服务器(处理用户的请求),超市老板就是负载均衡(将请求分发给多个后端) 这时候肯定有聪明的小伙伴会问了,你怎么知道每台服务器分配多少请求?我们用 Nginx做负载均衡都可以替我们去合理的分配请求。 Nginx负载均衡的方式: 1、轮询法(默认方式) 顾名思义,就是一台一台服务器按顺序轮转。默认权重一样。举个例子,假如有三台服务器ABC,第一个请求给了A,第二个就是B,第三个就是C,依次循环。 相关配置:
2、加权轮询 在轮询的基础上分配更高的权重可以获得更的请求。举个例子,有三个孩子,一个18岁、一个15岁、一个12岁,现在有10个箱子要搬,岁数大的会分到多点,岁数小的会分到少点,这里岁数相当于权重。权重高的可以分配到更多请求,权重低的就分配较少请求。 相关配置:
3、ip_hash 根据客户端 IP 地址的哈希值决定将请求转发到哪台服务器。同一个 IP 地址的请求总是转发到同一台后端服务器。 相关配置:
4、最少连接数 顾名思义,将请求分发给当前最少请求的服务器上。 相关配置:
上面这几种方式都能有效地解决请求如何分配的问题,可以供用户自行选择。 三、Nginx 反向代理&正向代理 老样子,什么是反向代理?什么是正向代理呢?再给大家举两个例子。 反向代理:**最贴切生活的,大家在某宝、某动、某夕夕上买东西,你访问一个商品信息,这个请求首先到达了一个Nginx反向代理服务器。这个反向代理服务器根据负载均衡算法选择一个后端的真实服务器来处理你的请求,后端服务器处理完请求后,响应会先返回给反向代理服务器,再由反向代理服务器转发给你。整个过程中,你并不知道具体是哪个后端服务器处理了你的请求。 相关配置:
正向代理:**也是比较贴切生活的,假如大家上班的时候无聊想摸鱼,连着公司网络想要访问国外的 Facebook 或 Twitter,直接访问的话公司网络策略限制了你直接访问,但是呢假如公司有正向代理服务器来访问。你在浏览器配好正向代理后,访问 Facebook,正向代理服务器代表你去访问Facebook,并将响应返回给你。这样,尽管直接访问Facebook是受限的,但通过正向代理,你仍然能够浏览该网站。 相关配置:
从上面两个例子我们可以了解到,反向代理可以确保没有一台服务器过载,并且外部用户无法直接访问后端服务器,隐藏了后端服务器的ip,减少了攻击面。正向代理帮助我们绕过了网络访问限制,同时隐藏了我们的真实IP地址。 四、Nginx动静分离 举不动了,大家直接看官方的回答(ps:没想到比较好的) Nginx的动静分离是一种优化Web服务器性能的技术,主要用于高效地处理静态资源(如HTML、CSS、JavaScript和图片文件等)和动态内容(比如由PHP、Python或其他后端语言生成的内容)。通过动静分离,可以显著提高网站的加载速度和用户体验。 动静分离的基本思路是将静态资源请求和动态请求分开处理: 静态资源:对于静态资源,可以直接由Nginx进行服务。Nginx在处理静态文件时非常高效,因为它不需要像动态请求那样调用外部应用服务器。 动态内容:当涉及到动态内容时,Nginx会将这些请求代理到后端的应用服务器(如Tomcat、Django、Node.js等),然后将处理结果返回给客户端。 相关配置(来源于网上):
阅读原文:原文链接 该文章在 2025/8/18 18:45:47 编辑过 |
关键字查询
相关文章
正在查询... |