本文来自于个人 慕课网手记: 聊聊 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代码开源,而且赋予自由软件许可证。tomcat
因为:安全
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。