apache反向代理tomcat的两个代理模式及相关的会话保持配置示例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了apache反向代理tomcat的两个代理模式及相关的会话保持配置示例相关的知识,希望对你有一定的参考价值。

参考技术A apache服务器默认可以将jsp动态内容通过proxy_http_module(此模块对应tomcat的8080端口)和proxy_ajp_module代理模块(此模块对应tomcat的8009端口)来将会话代理到tomcat服务器上做解析处理。此时的Apache只作为调度器,转发HTTP请求。然后等待tomcat服务器的HTTP响应,并转发给用户。Tomcat集群作为实际的服务器,则负责处理HTTP请求。

TomcatB服务器配置大体与TomcatA服务器差不多,只需修改index.jsp的内容为如下,其余的配置参考TomcatA的配置即可。

此时配置的结果应为同一个IP多次访问 http://192.168.0.81/test/ 能负载均衡到后端的两个tomcat主机之上。

ajp模式的配置与http模式的配置类似,但是在配置前需确认装载了相应的ajp模块。如果没有装载的话,需要另行编译安装。

此时配置的结果应为同一个IP多次访问 http://ajp.ilinux.io/test/ 能负载均衡到后端的两个tomcat主机之上。

修改此前的http和ajp模式的配置文件。

修改httpd对应的配置文件。

修改tomcat的server.xml文件。

配置完成后同一个IP多次访问 http://www.ilinux.io/test 都会被调度到同一个后端服务器去处理。

技术干货Nginx配置反向代理

【技术干货】Nginx配置反向代理



【技术干货】Nginx配置反向代理
【技术干货】Nginx配置反向代理

什么是反向代理


反向代理服务器决定哪台服务器提供服务。返回代理服务器不提供服务器。只是请求的转发。
正向代理如下:
【技术干货】Nginx配置反向代理
反向代理如下:
【技术干货】Nginx配置反向代理



【技术干货】Nginx配置反向代理
【技术干货】Nginx配置反向代理

Nginx实现反向代理的过程


首先安装两个tomcat服务器,都放到nginx服务器里面,两个端口分别是8081和8082。
首先是下载tomcat,使用下面的命令。
wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.94/bin/apache-tomcat-7.0.94.tar.gz
【技术干货】Nginx配置反向代理
然后是加载这个压缩包。
tar -xvf apache-tomcat-7.0.94.tar.gz
【技术干货】Nginx配置反向代理
然后把apache-tomcat-7.0.94复制成两份,一份是tomcat8081,一份是tomcat8082,过程如下:
cp -r apache-tomcat-7.0.94 tomcat8081cp -r apache-tomcat-7.0.94 tomcat8082
【技术干货】Nginx配置反向代理
然后通过Editplus远程连接修改tomcat8081里面的server.xml配置里面修改端口号, 注意主要要修改三个端口号。
<Server port="8006" shutdown="SHUTDOWN"><Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /><Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />
然后通过Editplus远程连接修改tomcat8082里面的server.xml配置里面修改端口号, 注意主要要修改三个端口号。
<Server port="8007" shutdown="SHUTDOWN"><Connector port="8082" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /><Connector port="8011" protocol="AJP/1.3" redirectPort="8443" />
然后把tomact8081里面的webapps文件夹里面的ROOT文件夹里面的index.jsp变成下面这样,此时可以看到下面输入的内容是8081。
<!DOCTYPE html><%@ page session="false" %><%java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy");request.setAttribute("year", sdf.format(new java.util.Date()));request.setAttribute("tomcat7Url", "http://tomcat.apache.org/");request.setAttribute("tomcat7DocUrl", "/docs/");request.setAttribute("tomcat7ExamplesUrl", "/examples/");%><html lang="en"> <head> <title><%=request.getServletContext().getServerInfo() %></title> <link href="favicon.ico" rel="icon" type="image/x-icon" /> <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" /> <link href="tomcat.css" rel="stylesheet" type="text/css" /> </head>

<body><h1>tomcat8081index.jsp<h1> </body>

</html>
然后把tomact8082里面的webapps文件夹里面的ROOT文件夹里面的index.jsp变成下面这样,此时可以看到下面输入的内容是8082。
<!DOCTYPE html><%@ page session="false" %><%java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy");request.setAttribute("year", sdf.format(new java.util.Date()));request.setAttribute("tomcat7Url", "http://tomcat.apache.org/");request.setAttribute("tomcat7DocUrl", "/docs/");request.setAttribute("tomcat7ExamplesUrl", "/examples/");%><html lang="en"> <head> <title><%=request.getServletContext().getServerInfo() %></title> <link href="favicon.ico" rel="icon" type="image/x-icon" /> <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" /> <link href="tomcat.css" rel="stylesheet" type="text/css" /> </head>

<body><h1>tomcat8082index.jsp<h1> </body>

</html>
然后就是启动tomcat8081和tomcat8082,启动如下所示:
/root/tomcat8081/bin/startup.sh/root/tomcat8082/bin/startup.sh
然后访问http://47.91.248.236:8081/ 路径结果如下,成功了。

【技术干货】Nginx配置反向代理
然后访问http://47.91.248.236:8082/ 路径结果如下,成功了。
【技术干货】Nginx配置反向代理
然后我们配置本地电脑里面的host文件变成下面这样:
这里我们借助ihost来操作。
【技术干货】Nginx配置反向代理
然后配置nginx服务器里面的conf文件夹里面的nginx.conf配置文件,配置完之后记得要重启nginx服务器。
此时当访问www.sina.com 的时候,就会访问host文件,然后就会去找47.91.248.236 这个ip对应的linux服务器,然后www.sina.com 默认的端口就是80,所以访问www.sina.com 的时候,就会找到下面的upstream tomcat1,然后下面的upstream tomcat1就会去找server 47.91.248.236:8081,就会找到8081端口的tomcat服务器,然后因为upstream tomcat1的默认访问页是index.jsp,所以就会访问8081端口的tomcat服务器的index.jsp页面(也就是http://47.91.248.236:8081/index.jsp)
此时当访问www.huohu.com 的时候,就会访问host文件,然后就会去找47.91.248.236 这个ip对应的linux服务器,然后www.huohu.com 默认的端口就是80,所以访问www.huohu.com 的时候,就会找到下面的upstream tomcat2,然后下面的upstream tomcat2就会去找server 47.91.248.236:8082,就会找到8082端口的tomcat服务器,然后因为upstream tomcat2的默认访问页是index.jsp,所以就会访问8082端口的tomcat服务器的index.jsp页面(也就是http://47.91.248.236:8082/index.jsp)
user root;worker_processes 1;events { worker_connections 1024;}
http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65;#配置www.sina.com:80对应的服务器监听端口upstream tomcat1 {server 47.91.248.236:8081;}server { listen 80; server_name www.sina.com; location / { proxy_pass http://tomcat1; #配置默认访问页,这里就会访问到tomcat1里面的那个index.jsp文件里面 index index.jsp; }}
#配置www.houhu.com:80对应的服务器监听端口 upstream tomcat2 {server 47.91.248.236:8082; } server { listen 80; server_name www.houhu.com; location / { proxy_pass http://tomcat2; #配置默认访问页,这里就会访问到tomcat2里面的那个index.jsp文件里面 index index.jsp; } }}

然后我们访问 www.sina.com。
此时访问到的就是tomcat8081对应的tomcat服务器。
【技术干货】Nginx配置反向代理
然后我们访问 www.huohu.com。
此时访问到的就是tomcat8082对应的tomcat服务器。
【技术干货】Nginx配置反向代理
到此nginx的反向代理就完成了。

能看到这里的同学,觉得好的话就帮忙点个赞吧,Thanks♪(・ω・)ノ


内容来源于网络,侵删


【技术干货】Nginx配置反向代理


鉴于篇幅有限,更多详细课程大纲/知识体系/实体书籍/网工必备工具包等请扫码加群获取!

领取福利


种下一棵树
最好的时间是10年前
其次是现在
学习也一样

以上是关于apache反向代理tomcat的两个代理模式及相关的会话保持配置示例的主要内容,如果未能解决你的问题,请参考以下文章

apache与tomcat 反向代理

技术干货Nginx配置反向代理

如何开启apache虚拟目录反向代理

apache2.2 反向代理 配置css js静态文件

apache反向代理tomcat

具有基本身份验证的 Apache 和 Tomcat 反向代理:Tomcat 可以接收用户名吗?