Nginx+Tomcat搭建高性能负载均衡集群

nginx作为应用的负载均衡和反向代理的主流工具,是每个开发和运维必须熟悉和了解的,这里简单记录下如何利用nginx +tomcat 搭建一个简单的负载均衡集群。

利用nginx做反向代理,用户访问都通过nginx访问,然后分发到后面的tomcat服务器。

1. 准备环境:

 需要下载好nginx和2个tomcat实例。这里两个tomcat部署在同一服务器上:

Nginx+Tomcat搭建高性能负载均衡集群

这里nginx利用docker 的nginx:alpine部署。

2. 修改tomcat端口

 修改tomcat 1下的server.xml中的端口

<Server port="18005" shutdown="SHUTDOWN">
<Connector port="18080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
<Connector port="18009" protocol="AJP/1.3" redirectPort="8443" />

  同样的修改tomcat 2 下的server.xml总的端口:

<Server port="28005" shutdown="SHUTDOWN">
<Connector port="28080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

  

<!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="28009" protocol="AJP/1.3" redirectPort="8443" />

   分别修改tomcat下的主页内容,区分请求是来自哪个tomcat

<p>bill test1. I am from tomcat 1</p>
<p>bill test2. I am from tomcat 2</p>

 3 修改nginx的配置文件 (这里配置按权重访问):

worker_processes 1;
 
events {
    worker_connections  1024;
}
 
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
 
    gzip  on;
	
    upstream  netitcast.com {  #cluster name
		server    127.0.0.1:18080  weight=1;
		server     127.0.0.1:28080  weight=2;
	}	
 
    server {
        listen       80;
        server_name  localhost;
  	
        charset utf-8;
#        access_log /opt/log/nginx/dd_m_access.log;
#	error_log  /opt/log/nginx/dd_m_error.log ;
	location / {
            proxy_pass http://netitcast.com;
            proxy_redirect default;
        }
		
 
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

(这里重启nginx的命令,配置文件放在/apps/svr/dockers/nginx/nginx.conf)

docker run --name my-nginx -v /apps/svr/dockers/nginx/nginx.conf:/etc/nginx/nginx.conf:ro -p 80:80 -d nginx:alpine nginx-debug -g 'daemon off;'

配置好了重启下nginx和tomcat的服务,即能看到页面随机跳转到不同tomcat的主页面。


 

相关推荐