浅谈Nginx之反向代理

温馨提示:本文最后更新于2023-12-19 10:49:13,某些文章具有时效性,若有错误或已失效,请在文末留言。

作为站长,相信大家都知道 Nginx 的重要性。Nginx 是一个高性能的 HTTP 和反向代理 Web 服务器,由俄罗斯的伊戈尔·赛索耶夫开发,第一个版本发布于2004年10月4日。

浅谈Nginx之反向代理

Nginx的特点

1、内存占用少
2、并发能力强(可支持大约 50000 个并发连接)
3、配置超简洁
4、bug 非常少
5、安装超简单
6、服务特别稳(几个月也不需要重启)
7、基于这些特点,越来越多的网站开始使用 Nginx,于是,掌握 Nginx 就变成了开发者的一项必不可少的技能

Nginx的作用

反向代理是 Nginx 作为 Web 服务器最常用的功能之一。那么,什么是反向代理呢?很多初学者在第一次遇到这个名词的时候总免不了出现很多问号。

那要想搞明白什么是反向代理,就必须得搞明白什么是正向代理。

举个例子,小二的浏览器是无法直接访问谷歌的,但香港的代理服务器是可以访问谷歌的,于是小二访问了香港的代理服务器,也就间接地访问了谷歌。那这台代理服务器也就是正向代理

浅谈Nginx之反向代理

总结一句就是,正向代理是代理客户端的,让你能正常访问目的服务器。与之相反,反向代理是代理服务器的,让大量的请求均衡地访问到某一台服务器上。

举个例子,10万个小二同时在访问 itwanger.com, 如果只有一台服务器的话,很容易就瘫痪了,于是高并发的情况下会有很多台服务器(假如10台吧)来接这个活,那怎么让10万个小二访问到这 10台服务器呢?

这就需要一个反向代理服务器了,反向代理服务器让 1 万个小二访问服务器A,1 万个小二访问服务器B,1 万个小二访问服务器C,这样的话,每台服务器的压力就相应减小了,是不是很 Nice?

浅谈Nginx之反向代理

那问题来了。每台服务器的能力可能不同,比如说服务器 A 的内存比较大一点,有 100 个 G;服务器 B 的内存小一点,有 10 个 G;服务器 C 的内存更小一点,只有 1 个 G。怎么才能让没台服务器承担起它能力范围内的访问呢?

Nginx 内置了轮询和加权轮询来达到负载均衡的目的。服务器A 牛逼就把它的权重加大一点,让 5 万个小二访问它;服务器B 弱一点,权重就再小一点,让 2 万个小二访问它;服务器C 更弱,权重就最小,让 1 万个小二访问它。

除此之外,Nginx 还有一个很牛逼的功能是动静分离

在我们的软件开发中,有些请求是需要后台处理的;有些请求是不需要后台处理的,比如说 css、js 这些文件请求,这些不需要经过后台处理的文件就叫静态文件。

我们可以根据一些规则,把动态资源和静态资源分开,然后通过 Nginx 把请求分开,静态资源的请求就不需要经过 Web 服务器处理了,从而提高整体上的资源的响应速度。

浅谈Nginx之反向代理

✅来源:十一张博客
© 版权声明
THE END
如果觉得这篇文章对您有帮助,可以收藏本网址,方便下次访问!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容