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应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
弹性计算 监控 负载均衡
|
10月前
|
存储 安全 应用服务中间件
将下载的Nginx证书转换为Tomcat证书格式
好,可以看到,将Nginx证书转换为Tomcat证书的过程就像在烘焙一块蛋糕。你需要准备材料(证书),配备工具(OpenSSL, keytool),按照一定的步骤慎重制作,最后你就拥有了一块可以在浏览器中呈现出漂亮的安全状态的HTTPS蛋糕。就这么简单,明了,没有任何复杂的理论知识,就像在家庭厨房里烘焙的快乐一样。
421 16
|
10月前
|
负载均衡 前端开发 应用服务中间件
Tomcat的负载均衡和动静分离(与nginx联动)
总的来说,负载均衡和动静分离是提高Web应用性能的两个重要手段。通过合理的配置和使用,我们可以让Web应用更好地服务于用户。
326 21
|
10月前
|
负载均衡 Java 应用服务中间件
Tomcat与Nginx的负载均衡与动静分离技巧
总的来说,Tomcat和Nginx各有各的优点,在负载均衡和动静分离这两方面它们都有很好的应用。灵活使用这两个工具能够让Web应用具有更好的扩展性和用户体验。
315 14
|
10月前
|
负载均衡 前端开发 JavaScript
LVS-DR模式、keepalived、Nginx与Tomcat合作,打造动静分离,高效负载均衡与高可用性
为了采用这样的架构,你需要对LVS-DR、Keepalived、Nginx与Tomcat有一定的理解和掌握,同时也需要投入一些时间去研究和配置,但是一旦你把它运行起来,你将会发现,这一切都是值得的。
413 11
|
Java 应用服务中间件 Shell
Nginx+Keepalived+Tomcat 实现Web高可用集群
Nginx+Keepalived+Tomcat 实现Web高可用集群
459 0
|
缓存 Java 应用服务中间件
nginx的正向代理和反向代理以及tomcat
Nginx的正向代理和反向代理功能在不同的场景中具有重要作用,正向代理主要用于客户端访问控制和匿名浏览,而反向代理则用于负载均衡和高可用性服务。Tomcat作为Java Web应用服务器,与Nginx结合使用,可以显著提升Web应用的性能和稳定性。通过合理配置Nginx和Tomcat,可以构建高效、稳定和可扩展的Web服务架构。
526 11
|
运维 监控 负载均衡
slb后端服务器故障
slb后端服务器故障
297 13
|
缓存 负载均衡 算法
深入理解后端服务的负载均衡技术
在现代网络服务架构中,高效的负载均衡策略对于保证应用性能和可靠性至关重要。本文将深入探讨后端服务中的负载均衡技术,包括其重要性、常见算法以及如何实现高效均衡。通过分析不同的负载均衡方法,我们旨在为开发者提供实用的指导,帮助他们优化自己的系统架构。
|
前端开发 Java 应用服务中间件
Tomcat和Nginx的资源路径映射
Tomcat和Nginx的资源路径映射
483 1