使用nginx+tomcat实现负载均衡

一.什么是nginx

nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定,

所以现在很多知名的公司都在使用nginx。

二.nginx应用场景

1、http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。

2、虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。

3、反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。


三.indows环境下安装nginx

 1)下载地址:

http://nginx.org

2)启动

  解压至c:\nginx,运行nginx.exe(即nginx -c conf\nginx.conf),默认使用80端口,日志见文件夹C:\nginx\logs

3)使用

输入地址:http://localhost 看到这个界面启动成功。

 

4)关闭

进入到nginx安装目录,nginx -s stop 或taskkill /F /IM nginx.exe > nul 

四.使用nginx实现反向代理

    通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中由代理服务器向Internet上的web服务器发起请求,最终达到客户机上网的目的。

而反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

案例:使用nginx实现nginx 同一端口根据不同域名转发到不同端口

Host文件C:\Windows\System32\drivers\etc

输入8080.i-ronge.com 跳转到 127.0.0.1:8080

输入8081.i-ronge.com 跳转到 127.0.0.1:8081

如下图:


五.nginx优缺点

① 占内存小,可以实现高并发连接、处理响应快。

② 可以实现http服务器、虚拟主机、反向代理、负载均衡。

③ nginx配置简单

④ 可以不暴露真实服务器IP地址

六.什么是负载均衡

  负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。


七.Windows环境下搭建nginx+tomcat负载均衡

nginx负载均衡服务器:127.0.0.1
tomcat1服务器:127.0.0.1:8080
tomcat2服务器:127.0.0.1:8082
真实环境中nginx、tomcat服务器是分开的。
1.3 在host文件中添加本地域名
127.0.0.1  www.i-ronge.com
1.4 配置nginx的负载均衡
    #Nginx是如何实现负载均衡的,Nginx的upstream目前支持以下几种方式的分配
    #1、轮询(默认)
    #每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
    #2、weight
    #指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
    #2、ip_hash
    #每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
    #3、fair(第三方)
    #按后端服务器的响应时间来分配请求,响应时间短的优先分配。
    #4、url_hash(第三方)
    #按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。  
    #ip_hash; 
upstream tomcatserver1{  
    server 127.0.0.1:8080;  
    server 127.0.0.1:8082;}
upstream tomcatserver2{   
    server 127.0.0.1:8081;  
} 

server { 
    listen 80; 
    server_name www.i-ronge.com; 
    #charset koi8-r; 
    #access_ log logs/host.access.log main; 
    location /{
         proxy_pass http:tomcatserverl;
         index index.html index.htm; 
         } 
 }
proxy_pass http:tomcatserverl;
index index.html index.htm; 
1.5 配置负载均衡的权重
使用weight配置负载均衡,weight默认为1,权重越高,处理请求越多。
节点说明:
在http节点里添加:

#定义负载均衡设备的 Ip及设备状态 
upstream myServer { 
server 127.0.0.1:9090 down; 
server 127.0.0.1:8080 weight=2; 
server 127.0.0.1:6060; 
server 127.0.0.1:7070 backup; 
}

在需要使用负载的Server节点下添加

proxy_pass http://myServer;

upstream 每个设备的状态:

down 表示单前的server暂时不参与负载 
weight 默认为1.weight越大,负载的权重就越大。 
max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误 
fail_timeout:max_fails 次失败后,暂停的时间。 
backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

猜你喜欢

转载自blog.csdn.net/qq_35393693/article/details/80404993