tomcat 1.2 负载均衡
实验效果:访问同一个ip或域名,轮询显示两个不同的tomcat界面,
nginx服务器ip:192.168.213.4 tomcat服务器ip:192.168.213.3
实验环境:两台服务器,一台tomcat 一台nginx代理服务器
过程:
1.在tomcat服务器复制一个tomcat2出来,作为另一个tomcat实例,通过cp -a完全复制
2.分别修改两台tomcat实例的配置文件,vim /usr/local/tomcat1/conf/server.xml 分别修改Server port和Connector port ,注意connect port作为tomcat对外端口,server port 只要修改不同就可以,两个tomcat的server port都要不同
3.关闭俩tomcat并重启,并检查是否都启动成功,检查两个tomcat都启动成功才行
/usr/local/tomcat1/bin/shutdown.sh /usr/local/tomcat1/bin/startup.sh ps -ef |grep tomcat
4.配置俩tomcat实例首页显示内容。进入/usr/local/tomcat/webapps/ROOT/indes.jsp 注意index.jsp文件就是tomcat界面首页显示内容,可以删除内容自行配置,在tmcat2也是一样配置。代码如下:
<html>
<body>
<h1>JSP Test Page tomcat1 </h1>
<%=new java.util.Date()%>
</body>
</html>
5.进入192.168.213.4配置nginx
进入nginx配置文件,在server上添加一行 include /usr/local/nginx/conf/test/*;
6.在conf目录下在创建一个test目录,在创建一个配置文件。vim /usr/local/nginx/conf/test/test.conf 配置负载均衡信息
upstream test{ server 192.168.213.3:8005 weight=1 ; #端口号是tomcat实例的connect port端口号 server 192.168.213.3:8006 weight=1; } server { listen 80; server_name 192.168.213.4; location / { root html; index index.html index.htm; proxy_set_header Host $host; proxy_pass http://test; #test是集群名 } location ~* .*\.(html|htm|js|png|jpg|gif|css|jpeg|txt|gz|bz2|zip|bmp|doc|xls|docx)$ { #动静分离,静态访问/var/www/html目录 root /var/www/html; expires 30d; } }
7.重启nginx ./nginx -t ./nginx -s reload
8.测试负载均衡
[root@nginx sbin]# curl 192.168.213.4:80 #nginx代理服务器端口 <html> <body> <h1>JSP Test Page tomcat1 </h1> Fri Oct 08 08:05:59 CST 2021 </body> </html> [root@nginx sbin]# curl 192.168.213.4:80 <html> <body> <h1>JSP Test Page tomcat2 </h1> Fri Oct 08 08:06:01 CST 2021 </body> </html> [root@nginx sbin]#
9.搭建基于域名的虚拟主机的测试
实验效果:访问http://www.zht.com:8080展示出zht.com 访问http://www.lyy.com:8080展示出lyy.com
过程:在/var/www/html下创建两个网页 lyy.html zht.html在两个文件输入zht.com和lyy.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了