资讯专栏INFORMATION COLUMN

聊聊 Nginx 的反向代理

NikoManiac / 1478人阅读

摘要:相信大家都听说过反向代理,一提到反向代理一定会想到。由于是一款自由的开源的高性能的服务器和反向代理服务器这是个开源的时代啊是一个跨平台服务器,可以运行在等操作系统上。所以反向代理服务器是引用在服务端。

本文来自于我的慕课网手记:聊聊 Nginx 的反向代理,转载请保留链接 ;)
背景

最近在优化服务基础设施这块,正好有时间写一下Nginx的体会。相信大家都听说过反向代理,一提到反向代理一定会想到Nginx。什么你没听过Nginx?那么你一定听说过Apache吧!Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。Apache的发展时期很长,而且是毫无争议的世界第一大服务器。它有着很多优点:稳定、开源、跨平台等等。它出现的时间太长了,它兴起的年代,互联网产业远远比不上现在。所以它被设计为一个重量级的。它不支持高并发的服务器。在Apache上运行数以万计的并发访问,会导致服务器消耗大量内存。操作系统对其进行进程或线程间的切换也消耗了大量的CPU资源,导致HTTP请求的平均响应速度降低。所以这些都决定了Apache不可能成为高性能WEB服务器,轻量级高并发服务器Nginx就应运而生了。

什么是Nginx

俄罗斯的工程师Igor Sysoev,他在为Rambler Media工作期间,使用C语言开发了Nginx。Nginx作为WEB服务器一直为Rambler Media提供出色而又稳定的服务。然后呢,Igor Sysoev将Nginx代码开源,并且赋予自由软件许可证。

由于:

Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器(这是个开源的时代啊~)

Nginx是一个跨平台服务器,可以运行在Linux,Windows,FreeBSD,Solaris, AIX,Mac OS等操作系统上。

可以作为反向代理进行负载均衡的实现,带来的极大的稳定性。

Nginx这样做的目的主要是将数据的承载量分摊到多个服务器上进行执行,这只是在服务基础设施上提高性能的优化手段之一。从下面图就可以看出:

什么是反向代理?

看了网上很多篇文章,下面这段话是我个人觉得介绍的最清楚的。
反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器;并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
所以反向代理服务器是引用在服务端。决定哪台服务器提供服务。
那么我就模拟了一个基本的反向代理和负载均衡配置实现,下面是我的操作步骤:

反向代理的模拟

首先创建多个 tomcat 服务器,我这里创建了三个:

然后修改每个 tomcat 运行在不同的端口号上,每个 server.xml配置文件需要修改三处端口:

分别在 8080,8081,8082 端口配置 8006,8081,8010 端口,分别进行启动测试,但是注意防火墙配置问题。测试结果如下:

接着配置 nginx 的配置文件,进行反向代理:

最后不断访问刚配置的 test.tomcats.com 域名,发现三台 tomcat 成功运行的页面都有出现,比例大致 1:1:1:

恭喜你,配置成功了!

配置负载均衡

其实很简单,就是在刚刚配置的 nginx 文件中 的 upstream tomcats 中的 server 后面添加一个 weight, 即可代表权重。权重越高,分派请求的数量就越多。默认权重是 1。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/40605.html

相关文章

  • nginx实现内容重定向两种方式:rewrite和反向代理

    摘要:但是使用重定向,浏览器链接是会发生变化的。第二种反向代理有些场景需要内容重定向到另外一个但是链接保持不变,这时候就可以利用反向代理配置来达到目的。这里只是针对反向代理配置的一个投机利用,如果不理解反向代理,一定请自行学习。 第一种:rewrite 按照常规理解,实现重定向就是要用rewrite来实现,例如demo:showImg(https://segmentfault.com/img...

    Bmob 评论0 收藏0
  • nginx架构

    摘要:反向代理反向代理反向代理负载均衡鉴权限流等逻辑架构在逻辑上分为入口层,模块化的功能处理层,系统调用层。多个共同监听事件并处理,反向代理会把请求转发给后端服务。 一.概述 本文将深入剖析nginx的架构。 第一部分介绍nginx现有框架,用典型的4+1视图阐述,包括逻辑架构,开发架构,运行架构,物理架构,功能用例,nginx为单机服务,不考虑物理架构。其中功能用例概述nginx功能;逻辑...

    smartlion 评论0 收藏0
  • nginx架构

    摘要:反向代理反向代理反向代理负载均衡鉴权限流等逻辑架构在逻辑上分为入口层,模块化的功能处理层,系统调用层。多个共同监听事件并处理,反向代理会把请求转发给后端服务。 一.概述 本文将深入剖析nginx的架构。 第一部分介绍nginx现有框架,用典型的4+1视图阐述,包括逻辑架构,开发架构,运行架构,物理架构,功能用例,nginx为单机服务,不考虑物理架构。其中功能用例概述nginx功能;逻辑...

    fuyi501 评论0 收藏0

发表评论

0条评论

NikoManiac

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<