nginx做前端反代负载均衡,后端httpd+tomcat

简介:

实验内容:用nginx做前端反代负载均衡后端httpd+tomcat


实验环境:物理机win7,虚拟机centos7;

node1:172.18.11.111 httpd+tomcat

node2:172.18.11.112 httpd+tomcat

node3:172.18.11.113 nginx反代负载均衡


说明:httpd有两种方式与tomcat通信;

(1)httpd可使用http模块反代tomcat,此时tomcat使用http链接器;

(2)httpd还可使用ajp模块反代tomcat,此时tomcat使用ajp链接器;

wKiom1df9KKxa2-kAABeLevrCLc804.png

在node3上:

安装nginx

]# yum  -y install nginx-1.8.0-1.el7.ngx.x86_64.rpm 

]# vim /etc/nginx/conf.d/default.conf

在server配置段添加:

location / {

  root   /usr/share/nginx/html;

  index  index.html index.htm;

  proxy_pass http://websrvs;

}


]# vim /etc/nginx/nginx.conf

在http配置段添加:

upstream websrvs {

  server 172.18.11.111:80 weight=1;

  server 172.18.11.112:80 weight=2;

}


分别在node1和node2上:安装httpd和tomcat

安装java运行环境:

]# yum -y install java-1.7.0-openjdk java-1.7.0-openjdk-devel

]# vim /etc/profile.d/java.sh

export JAVA_HOME=/usr


]# . /etc/profile.d/java.sh


安装tomcat:

]# yum install tomcat tomcat-lib tomcat-webapps tomcat-admin-webapps


在web工作目录创建应用存放目录;

]# cd /var/lib/tomcat/webapps/

]# mkdir testapp

]# mkdir classes lib WEB-INF META-INF

]# vim  /var/lib/tomcat/webapps/testapp/index.jsp

wKiom1df-g_xtldtAAAuY0ofLk4067.png

]# vim /etc/tomcat/server.xml 

在Engine配置段添加:

<Context path="/test" docBase="testapp"/>


]# systemctl start tomcat.service


把创建的所有目录文件复制一份到node2上,然后再做配置文件修改:

]# scp -r /var/lib/tomcat/webapps/testapp/ node2:/var/lib/tomcat/webapps/

]# scp /etc/tomcat/server.xml node2:/etc/tomcat/


在node2上:

]# vim /var/lib/tomcat/webapps/testapp/index.jsp

wKiom1df-pCzqMTcAAA2Dt0cSX0340.png

]# systemctl start tomcat


安装好tomcat后,分别在node1和node2上安装httpd并编辑配置文件:

]# yum -y install httpd

]# vim /etc/httpd/conf/httpd.conf 

#DocumentRoot "/var/www/html"


]# vim /etc/httpd/conf.d/proxy_http_tomcat.conf

wKiom1df_k_TDw3HAAAwe0Ppc8k484.png

因为node1和node2都是httpd本地反代tomcat,所有配置文件完全一样;


本次使用proxy_http_module反代模块基于http协议与tomcat通信:

]# httpd -M

wKiom1dgBJDyEiHfAAAqpC92lOk177.png

]# systemctl start httpd


浏览器测试,输入http://172.18.11.113/testapp/index.jsp

多次刷新后,实现负载均衡且比例为1:2,实现了前端nginx反代后端tomcat。


wKiom1dgBSuDKcpIAAA6rbXUPak762.png

wKioL1dgBj7TynFsAAA1SMVh4_Q294.png


如果要做会话粘性,可在nginx上在upstream配置段添加一条指令即可:

upstream websrvs {

  server 172.18.11.111:80 weight=1;

  server 172.18.11.112:80 weight=2;

  ip_hash;

}

说明:ip_hash是基于源ip做会话绑定的。


浏览器测试,输入http://172.18.11.113/testapp/index.jsp

多次刷新后,会绑定在一个源ip上。


httpd还可使用ajp协议进行反代tomcat,这样的好处是避免用户请使用求跨过httpd来访问tomcat,因为如果使用http协议反代,则有可能会用户直接访问后端的tomcat而跨过了httpd。

其配置也非常简单,根据以上配置稍作修改即可:


只需修改node1和node2上的配置文件:

]# vim /etc/httpd/conf.d/proxy_http_tomcat.conf

wKioL1dgCRyjTb_HAABR88kO03M525.png

其它都不变。

查看httpd已加载的模块:

wKiom1dgCGDwRIFBAAAqqv2jOws219.png

以上过程就是简单实现nginx作为反代负载均衡至后端tomcat服务器的配置实验。










本文转自 crystaleone 51CTO博客,原文链接:http://blog.51cto.com/linsj/1789310,如需转载请自行联系原作者
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
JavaScript 前端开发 Java
制造业ERP源码,工厂ERP管理系统,前端框架:Vue,后端框架:SpringBoot
这是一套基于SpringBoot+Vue技术栈开发的ERP企业管理系统,采用Java语言与vscode工具。系统涵盖采购/销售、出入库、生产、品质管理等功能,整合客户与供应商数据,支持在线协同和业务全流程管控。同时提供主数据管理、权限控制、工作流审批、报表自定义及打印、在线报表开发和自定义表单功能,助力企业实现高效自动化管理,并通过UniAPP实现移动端支持,满足多场景应用需求。
1228 1
|
9月前
|
存储 前端开发 安全
实现“永久登录”:针对蜻蜓Q系统的用户体验优化方案(前端uni-app+后端Laravel详解)-优雅草卓伊凡
实现“永久登录”:针对蜻蜓Q系统的用户体验优化方案(前端uni-app+后端Laravel详解)-优雅草卓伊凡
381 5
|
前端开发 Java 物联网
智慧班牌源码,采用Java + Spring Boot后端框架,搭配Vue2前端技术,支持SaaS云部署
智慧班牌系统是一款基于信息化与物联网技术的校园管理工具,集成电子屏显示、人脸识别及数据交互功能,实现班级信息展示、智能考勤与家校互通。系统采用Java + Spring Boot后端框架,搭配Vue2前端技术,支持SaaS云部署与私有化定制。核心功能涵盖信息发布、考勤管理、教务处理及数据分析,助力校园文化建设与教学优化。其综合性和可扩展性有效打破数据孤岛,提升交互体验并降低管理成本,适用于日常教学、考试管理和应急场景,为智慧校园建设提供全面解决方案。
738 70
|
存储 消息中间件 前端开发
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
校园圈子系统校园论坛小程序采用uni-app前端框架,支持多端运行,结合PHP后端(如ThinkPHP/Laravel),实现用户认证、社交关系管理、动态发布与实时聊天功能。前端通过组件化开发和uni.request与后端交互,后端提供RESTful API处理业务逻辑并存储数据于MySQL。同时引入Redis缓存热点数据,RabbitMQ处理异步任务,优化系统性能。核心功能包括JWT身份验证、好友系统、WebSocket实时聊天及活动管理,确保高效稳定的用户体验。
718 4
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
|
前端开发 算法 NoSQL
前端uin后端php社交软件源码,快速构建属于你的交友平台
这是一款功能全面的社交软件解决方案,覆盖多种场景需求。支持即时通讯(一对一聊天、群聊、文件传输、语音/视频通话)、内容动态(发布、点赞、评论)以及红包模块(接入支付宝、微信等第三方支付)。系统采用前后端分离架构,前端基于 UniApp,后端使用 PHP 框架(如 Laravel/Symfony),配合 MySQL/Redis 和自建 Socket 服务实现高效实时通信。提供用户认证(JWT 集成)、智能匹配算法等功能,助力快速上线,显著节约开发成本。
521 2
前端uin后端php社交软件源码,快速构建属于你的交友平台
|
人工智能 监控 前端开发
AI工具:前端与后端的终极对决?谁将成为新时代的宠儿?
深入探讨AI工具对前端和后端开发的具体影响、各自的机遇与挑战,并分析未来开发者如何驾驭AI,实现能力跃迁。
734 0
|
负载均衡 应用服务中间件 API
Nginx配置文件详解Nginx负载均衡Nginx静态配置Nginx反向代理
Nginx配置文件详解Nginx负载均衡Nginx静态配置Nginx反向代理
458 4
|
负载均衡 Java 应用服务中间件
Nginx负载均衡配置
Nginx负载均衡配置
|
负载均衡 算法 Java
java中nginx负载均衡配置
java中nginx负载均衡配置
338 0
|
负载均衡 前端开发 应用服务中间件
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400