Nginx + tomcat 负载均衡学习

一:认识 Nginx
1.什么是Nginx ?
    Nginx ("engine x") 是一个高性能的 HTTP和  反向代理 服务器,也是一个 IMAP/POP3/SMTP  服务器。 Nginx 是由 Igor Sysoev 为 俄罗斯访问量第二的 Rambler.ru 站点开发的.
     Nginx是一款 轻量级Web 服务器/ 反向代理服务器及 电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.
 
2.优势?
    在高链接并发的状况下,Nginx是 Apache服务器不错的替代品:Nginx在美国是作虚拟主机生意的老板们常常选择的软件平台之一。可以支持高达 50,000 个并发链接数的响应,而在实际的运做中,是能够支持二万至四万个平行连接。
    
    Nginx做为 负载均衡服务器:Nginx 既能够在内部直接支持 Rails 和 PHP 程序对外进行服务,也能够支持做为 HTTP 代理服务器对外进行服务。Nginx采用C进行编写,不管是系统资源开销仍是CPU使用效率都比 Perlbal 要好不少。
 
    Nginx 是一个安装很是的简单、配置文件很是简洁(还可以支持perl语法)、 Bugs很是少的服务器。Nginx 启动特别容易,而且几乎能够作到7*24不间断运行,即便运行数个月也不须要从新启动。你还可以不间断服务的状况下进行软件版本的升级。
 
3.Tomcat与Nginx性能对比
     Tomcat 服务器做为一个 Web 服务器,其并发数在 300-500 之间,若是有超过 500的并发数便会出现 Tomcat 不能响应新的请求的状况,严重影响网站的运行。另外,在访问量大的状况下,Tomcat 的线程数会不断增长。因为Tomcat 自身对内存的占用有控制,当对内存的占用达到最大值时便会出现内存溢出,对网站的访问严重超时等现象,这时便须要从新启动 Tomcat 以释放占用的内存,这样作便会阻断网站运行。因此对 Tomcat 作负载均衡便颇有必要。目前能够和 Tomcat 作负载均衡的主流服务器是 Apache ,可是 Nginx 因为功能多、配置简单等优势逐渐成为不少负载均衡服务器的首选。 Nginx 的并发数可达到50000 ,因此理论上能够和Tomcat 以 1:100 的比例来配置,这样即可以很好的解决网站并发瓶颈问题。
 
4.补充什么是反向代理
        反向代理方式实际上就是一台负责转发的代理服务器,貌似充当了真正服务器的功能,但实际上并非,代理服务器只是充当了转发的做用,而且从真正的服务器那里取得返回的数据。这样说,其实nginx完成的就是这样的工做。咱们让nginx监听一个端口,譬如80端口,但实际上咱们转发给在8080端口的tomcat,由它来处理真正的请求,当请求完成后,tomcat返回,但数据此时没直接返回,而是直接给nginx,由nginx进行返回,这里,咱们会觉得是nginx进行了处理,但实际上进行处理的是tomcat。
 
    
二:搭建实例
   1.先去 nginx官网下一个软件。 http://nginx.org/en/download.html能够到这里去下。因为个人是windows系统,因此下载windows版。下完后把软件启动。进入到nginx文件夹,打开cmd。直接start nginx就OK了。我安装的路径F:\nginx-1.9.9
若是看到窗口闪了一下,说明启动成功,打开任务管理器查看 是否有两个nginx.exe。 若是有才真正开启成功。
 
 
    
2.修改conf 下的 nginx.conf文件   负载均衡设置,看到以下配置
 
    
    

这段代码在server里面,至关于一个代理服务器,固然能够配置多个。html

下面咱们仔细来分析一下:nginx

listen:表示当前的代理服务器监听的端口,默认的是监听80端口。注意,若是咱们配置了多个server,这个listen要配置不同,否则就不能肯定转到哪里去了。最低80。windows

server_name:表示监听到以后须要转到哪里去,这时咱们直接转到本地,这时是直接到nginx文件夹内。tomcat

location:表示匹配的路径,这时配置了/表示全部请求都被匹配到这里服务器

root:里面配置了root这时表示当匹配这个请求的路径时,将会在这个文件夹内寻找相应的文件,这里对咱们以后的静态文件伺服颇有用。并发

index:当没有指定主页时,默认会选择这个指定的文件,它能够有多个,并按顺序来加载,若是第一个不存在,则找第二个,依此类推。负载均衡

error_page: 是表明错误的页面。性能

 

那咱们知道了具体的配置了,怎么让它访问localhost时转到tomcat时。实际上就修改两个地方:网站

    
        proxy_pass,它表示代理路径,至关于转发。
        修改了文件,在cmd窗口执行    nginx -s reload         nginx能够从新加载文件的。
而后访问网页localhost,则会获得咱们想要的结果:
        
3.配置多个Tomcat 也是如此,以下:
        咱们在server外添加了一个upstream,而直接在proxy_pass里面直接用http://+upstream的名称来使用。
 
4.注意 你的项目必须都部署到每一台服务器上! 
            访问项目的路径为:
             localhost/项目名/方法名
 
5.关闭Nginx 
          直接运行  nginx -s stop  就能够关闭了.
相关文章
相关标签/搜索