分享好友 最新资讯首页 最新资讯分类 切换频道
nginx的n种用法,你都会吗?
2024-11-18 21:27

本文旨在用最通俗的语言讲述最枯燥的基本知识

nginx的n种用法,你都会吗?

nginx作为一个高性能的web服务器,想必大家垂涎已久,蠢蠢欲动,想学习一番了吧,语法不多说,网上一大堆。下面博主就nginx的非常常用的几个功能做一些讲述和分析,学会了这几个功能,平常的开发和部署就不是什么问题了。因此希望大家看完之后,能自己装个nginx来学习配置测试,这样才能真正的掌握它。前方高能。

文章提纲:

1. 正向代理

正向代理:内网服务器主动去请求外网的服务的一种行为

光看概念,可能有读者还是搞不明白:什么叫做“正向”,什么叫做“代理”,我们分别来理解一下这两个名词。

正向:相同的或一致的方向 代理:自己做不了的事情或者自己不打算做的事情,委托或依靠别人来完成。

借助解释,回归到nginx的概念,正向代理其实就是说客户端无法主动或者不打算完成主动去向某服务器发起请求,而是委托了nginx代理服务器去向服务器发起请求,并且获得处理结果,返回给客户端。

从下图可以看出:客户端向目标服务器发起的请求,是由代理服务器代替它向目标主机发起,得到结果之后,通过代理服务器返回给客户端。

举个栗子:广大社会主义接班人都知道,为了保护祖国的花朵不受外界的乌烟瘴气熏陶,国家对网络做了一些“优化”,正常情况下是不能外网的,但作为程序员的我们如果没有谷歌等搜索引擎的帮助,再销魂的代码也会因此失色,因此,网络上也曾出现过一些技术和软件供有需要的人使用,如某V**等,其实V**的原理大体上也类似于一个正向代理,也就是需要访问外网的电脑,发起一个访问外网的请求,通过本机上的V**去寻找一个可以访问国外网站的代理服务器,代理服务器向外国网站发起请求,然后把结果返回给本机。

正向代理的配置:

这样就可以做到内网中端口为8080的服务器主动请求到1.2.13.4的主机上,如在Linux下可以:

正向代理的关键配置:

2. 反向代理

反向代理:reverse proxy,是指用代理服务器来接受客户端发来的请求,然后将请求转发给内网中的上游服务器,上游服务器处理完之后,把结果通过nginx返回给客户端。

上面讲述了正向代理的原理,相信对于反向代理,就很好理解了吧。 反向代理是对于来自外界的请求,先通过nginx统一接受,然后按需转发给内网中的服务器,并且把处理请求返回给外界客户端,此时代理服务器对外表现的就是一个web服务器,客户端根本不知道“上游服务器”的存在。

举个栗子:一个服务器的80端口只有一个,而服务器中可能有多个项目,如果A项目是端口是8081,B项目是8082,C项目是8083,假设指向该服务器的域名为www.xxx.com,此时访问B项目是www.xxx.com:8082,以此类推其它项目的URL也是要加上一个端口号,这样就很不美观了,这时我们把80端口给nginx服务器,给每个项目分配一个独立的子域名,如A项目是a.xxx.com,并且在nginx中设置每个项目的转发配置,然后对所有项目的访问都由nginx服务器接受,然后根据配置转发给不同的服务器处理。具体流程如下图所示:

反向代理配置:

这样就可以通过a.xxx.com来访问a项目对应的网站了,而不需要带上难看的端口号。 反向代理的配置关键点是:

3. 透明代理

透明代理:也叫做简单代理,意思客户端向服务端发起请求时,请求会先到达透明代理服务器,代理服务器再把请求转交给真实的源服务器处理,也就是是客户端根本不知道有代理服务器的存在。

举个栗子:它的用法有点类似于拦截器,如某些制度严格的公司里的办公电脑,无论我们用电脑做了什么事情,安全部门都能拦截我们对外发送的任何东西,这是因为电脑在对外发送时,实际上先经过网络上的一个透明的服务器,经过它的处理之后,才接着往外网走,而我们在网上冲浪时,根本没有感知到有拦截器拦截我们的数据和信息。

有人说透明代理和反向代理有点像,都是由代理服务器先接受请求,再转发到源服务器。其实本质上是有区别的,透明代理是客户端感知不到代理服务器的存在,而反向代理是客户端感知只有一个代理服务器的存在,因此他们一个是隐藏了自己,一个是隐藏了源服务器。事实上,透明代理和正向代理才是相像的,都是由客户端主动发起请求,代理服务器处理;他们差异点在于:正向代理是代理服务器代替客户端请求,而透明代理是客户端在发起请求时,会先经过透明代理服务器,再达到服务端,在这过程中,客户端是感知不到这个代理服务器的。

4. 负载均衡

负载均衡:将服务器接收到的请求按照规则分发的过程,称为负载均衡。负载均衡是反向代理的一种体现。

可能绝大部分人接触到的web项目,刚开始时都是一台服务器就搞定了,但当网站访问量越来越大时,单台服务器就扛不住了,这时候需要增加服务器做成集群来分担流量压力,而在架设这些服务器时,nginx就充当了接受流量和分流的作用了,当请求到nginx服务器时,nginx就可以根据设置好的负载信息,把请求分配到不同的服务器,服务器处理完毕后,nginx获取处理结果返回给客户端,这样,用nginx的反向代理,即可实现了负载均衡。

nginx实现负载均衡有几种模式:

下面的配置是指:负载中有三台服务器,当请求到达时,nginx按照时间顺序把请求分配给三台服务器处理。

下面的配置是指:负载中有三台服务器,当请求到达时,nginx优先按照ip_hash的结果进行分配,也就是同一个IP的请求固定在某一台服务器上,其它则按时间顺序把请求分配给三台服务器处理。

而在每一种模式中,每一台服务器后面的可以携带的参数有:

如下面的配置是指:负载中有三台服务器,当请求到达时,nginx按时间顺序和权重把请求分配给三台服务器处理,例如有100个请求,有30%是服务器4处理,有50%的请求是服务器5处理,有20%的请求是服务器6处理。

如下面的配置是指:负载中有三台服务器,服务器4的失败超时时间为60s,服务器5暂不参与负载,服务器6只用作备份机。

下面是一个配置负载均衡的示例(只写了关键配置): 其中:

5. 静态服务器

现在很多项目流行前后分离,也就是前端服务器和后端服务器分离,分别部署,这样的方式能让前后端人员能各司其职,不需要互相依赖,而前后分离中,前端项目的运行是不需要用Tomcat、Apache等服务器环境的,因此可以直接用nginx来作为静态服务器。

静态服务器的配置如下,其中关键配置为:

6. nginx的安装

学了这么多nginx的配置用法之后,我们需要对每一个知识点做一下测试,才能印象深刻,在此之前,我们需要知道nginx是怎么安装,下面以Linux环境为例,简述yum方式安装nginx的步骤:

最新文章
影响亚马逊排名的因素有哪些?
很多跨境卖家对亚马逊的排名一无所知。事实上,只要知道影响排名的因素,对于如何提升排名就有了一个大概的方向和体系。影响搜索
AI 春节掘金 6.0 超强进化版震撼来袭!聚焦爆款动图桌面、壁纸、屏保素材领域,借助 AI 智能一键创作神器,春节期间开启轻松躺赚模式。每日仅需投入轻松十分钟,即可月入 1W+,畅享智能创作带来的财
重要声明本站所有内容仅供参考,分享出来是为了可以给大家提供新的思路。本站一切资源不代表本站立场,并不代表本站赞同其观点和
Ubuntu
Ubuntu叫法很多(乌班图、优班图、友帮拓),因为笔者打算学习Django,所以安装Ubuntu进行学习。本次会
十大电脑视频剪辑软件排名 视频剪辑软件哪个好
坦率地说,视频正日益成为社交媒体和营销的重要组成部分。越来越多的人参与视频编辑,其中最关键的是视频编辑软件。而市场上的视
Optimizing Website Keywords for Improved SEO Performance
Abstra: Optimizing website keywords is a crucial aspe of improving SEO performance. By strategically choosing and implem
org域名代表什么 org域名是什么网站
域名是网站的标识,一个简单易记的域名可以让访问者更容易记住您的网站。网站域名后缀有很多,比如常见的.org、.com、.net等国际
全方位解析热门话题:深入探讨用户最关心的热点问题与解决方案
随着人工智能技术的发展其在医疗领域的应用日益广泛。算法可以在短时间内分析大量病例数据,辅助医生实行精准诊断,升级治疗效果
【增长】机构:预计2024年Mini LED背光产品出货增长至1379万台;天钰:AMOLED驱动芯片将于2024年Q2量产;大尺寸LCD/OLED面板供需情况改善
1.机构:预计2024年Mini LED背光产品出货增长至1379万台2.天钰:AMOLED驱动芯片将于2024年Q2量产3.京东方终止云南OLED项目10亿元
2025年百度广告投放最新实战指南
在数字化营销日益重要的今天,百度广告投放已成为众多企业推广品牌、吸引潜在客户的重要手段。然而,随着市场竞争的加剧,如何高
SEO优化站长如何提高搜索排名
在当今竞争激烈的数字市场中,提升网站的搜索排名是每位站长的主要目标。通过有效的SEO策略,不仅可以提高网站的可见性,还能吸