手把手教你,使用 Nginx 搭配 Tomcat 实现负载均衡!(二)
03、Tomcat安装
直接访问 tomcat 官网(http://tomcat.apache.org/
),下载对应的安装包,本次案例选择的是apache-tomcat-8.5.45.tar.gz
版本,本次安装环境是centos7
。
上传到对应的服务器文件夹中,之后解压文件夹
tar -zxvf apache-tomcat-8.5.40.tar.gz
重新命名
mv apache-tomcat-8.5.40 tomcat-1
同样的,再次解压安装包,命名为tomcat-2
mv apache-tomcat-8.5.40 tomcat-2
1)修改 tomcat 端口号
将 tomcat-1 的 http 端口设置为8080,将 tomcat-2 的 http 端口设置为8081。
进入tomcat
的conf
文件夹,修改server.xml
vim server.xml
修改SHUTDOWN
、HTTP/1.1
、redirectPort
、AJP/1.3
端口,使其错开,避免重启的时候,报端口被占用问题
tomcat-1 的SHUTDOWN
、HTTP/1.1
、redirectPort
、AJP/1.3
设置如下:
<!--关闭服务端口--> <Server port="9005" shutdown="SHUTDOWN"> ... <!--HTTP服务端口8080,跳转端口9443--> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="9443" /> <!--AJP服务端口--> <Connector port="9009" protocol="AJP/1.3" redirectPort="9443" /> ... </Server>
tomcat-2 的SHUTDOWN
、HTTP/1.1
、redirectPort
、AJP/1.3
设置如下:
<!--关闭服务端口--> <Server port="10005" shutdown="SHUTDOWN"> ... <!--HTTP服务端口8081--> <Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="10443" /> <!--AJP服务端口--> <Connector port="10009" protocol="AJP/1.3" redirectPort="10443" /> ... </Server>
2)启动服务
分别进入 tomcat-1 、 tomcat-2 的bin
文件夹,执行脚本,启动服务
sh startup.sh
查看服务是否启动成功
ps -ef|grep tomcat
说明已经启动成功了,可以直接在浏览器上分别输入ip:8080
、ip:8081
进行访问了,结果如下:
3)编写Html
为了便于测试,我们创建一个html
格式的页面,文件命名为index.html
,内容如下:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> Hello server! </body> </html>
进入tomcat
的webapps
文件夹,删除ROOT
文件夹里面的东西,创建index.html
文件;
在 tomcat-1 中,index.html
内容如下:
在 tomcat-2 中,index.html
内容如下:
4)测试
创建好了之后,分别在浏览器上访问ip:8080
、ip:8081
;
ip:8080
,结果如下:
ip:8081
,结果如下:
04、Nginx实现负载均衡
进入 Nginx 的配置文件夹
cd /usr/local/nginx/conf
编辑nginx.conf
配置文件
vim nginx.conf
主要新增upstream
集群配置点,配置如下:
worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; gzip on; #服务器的集群(这个就是我们要配置的地方) #test.com:服务器集群名字,自定义 upstream test.com { #服务器配置 weight是权重的意思,权重越大,分配的概率越大。 #127.0.0.1:8080、127.0.0.1:8081对应tomcat服务器地址 server 127.0.0.1:8080 weight=1; server 127.0.0.1:8081 weight=2; } server { listen 81; server_name localhost; location / { · #配置反向代理地址 proxy_pass http://test.com; proxy_redirect default; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
参数说明:
•worker_processes:工作进程的个数,一般与计算机的cpu核数一致•worker_connections:单个进程最大连接数(最大连接数=连接数*进程数)•include:文件扩展名与文件类型映射表•default_type:默认文件类型•sendfile :开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。•keepalive_timeout:长连接超时时间,单位是秒•upstream:服务器的集群配置点
配置好之后,进入/usr/local/nginx/sbin/
文件夹,重新刷新配置文件
./nginx -s reload
最后,访问Nginx
服务器所在ip:81
地址,多次刷新,看看效果:
至此,Nginx 与 Tomcat 搭配实现负载均衡已经配置完了,是不是很酷!
赶紧去试试吧!
我有话说: