Tomcat与Nginx、Apache结合的相关实践
一、LNMT
简介:在Tomcat服务器前端部署一个Nginx(反向代理),当用户请求静态资源时,由Nginx服务器负责响应;当用户请求java应用程序资源时,由后端的Tomcat服务器进行响应。
环境:
OS:Linux CentOS 6.8
Tomcat 6.0, IpAddr:192.168.1.101
Nginx 1.10.2, IpAddr:192.168.1.102
配置:
Tomcat端配置:
/*定义一个主机*/
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
/*定义一个Context:testapp应用程序*/
<Context path="/test" docBase="testapp" reloadable="true" />
/*定义第二个应用程序:test-1app*/
<Context path="/test-1" docBase="test-1app" reloadable="true" />
</Host>
Nginx端配置:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html; # Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf; /*处理静态资源请求*/
location / {
} /*Tomcat处理URL以jsp和do结尾的请求*/
location ~*\.(jsp|do)$ {
proxy_pass http://192.168.1.101:8080;
} /*Tomcat处理testapp应用请求*/
location /test/ {
proxy_pass http://192.168.1.101:8080/test/index1.jsp;
} /*Tomcat处理test-1app应用请求*/
location /test-1/demo.jsp {
proxy_pass http://192.168.1.101:8080;
} error_page 404 /404.html;
location = /40x.html {
} error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
二、LAMT
简介:与LNMT类似,只不过是httpd作为反代服务器。但httpd反代tomcat有三种方式:
①基于httpd的proxy_module和proxy_http_module的反代
②基于httpd的proxy_module和proxy_ajp_module的反代
③基于httpd的mod_jk模块的反代(需自行编译安装)
环境:
OS:Linux CentOS 6.8
Tomcat 6.0, IpAddr:192.168.1.101
httpd 2.2.15, IpAddr:192.168.1.102
配置:
第一种方式的实现:
Tomcat端配置与Nginx时配置相同,无需修改。
Httpd端配置:
NameVirtualHost 192.168.1.102:80 <VirtualHost 192.168.1.102:80>
ServerName www.b.com
ProxyRequests Off
ProxyVia On
ProxyPreserveHost On
ProxyPass / http://192.168.1.101:8080
ProxyPassReverse / http://192.168.1.101:8080
<Location />
Allow from all
</Location>
</VirtualHost> <VirtualHost 192.168.1.102:80>
ServerName www.c.com
ProxyRequests Off
ProxyVia On
ProxyPreserveHost On
ProxyPass / http://192.168.1.101:8080/test/index1.jsp
ProxyPassReverse / http://192.168.1.101:8080/test/index1.jsp
<Location />
Allow from all
</Location>
</VirtualHost> <VirtualHost 192.168.1.102:80>
ServerName www.d.com
ProxyRequests Off
ProxyVia On
ProxyPreserveHost On
ProxyPass / http://192.168.1.101:8080/test-1/demo.jsp
ProxyPassReverse / http://192.168.1.101:8080/test-1/demo.jsp
<Location />
Allow from all
</Location>
</VirtualHost>
如果是httpd2.4+版本,配置如下:
<VirtualHost 192.168.1.102:80>
ServerName www.b.com
ProxyRequests Off
ProxyVia On
ProxyPreserveHost On
<Proxy *>
Require all granted
</Proxy>
ProxyPass / http://192.168.1.101:8080
ProxyPassReverse / http://192.168.1.101:8080
<Location />
Require all granted
</Location>
</VirtualHost>
第二种方式实现:
Tomcat端无需变动
Httpd端仅需修改协议和端口即可,配置如下:
NameVirtualHost 192.168.1.102:80 <VirtualHost 192.168.1.102:80>
ServerName www.b.com
ProxyRequests Off
ProxyVia On
ProxyPreserveHost On
ProxyPass / ajp://192.168.1.101:8009
ProxyPassReverse / ajp://192.168.1.101:8009
<Location />
Allow from all
</Location>
</VirtualHost> <VirtualHost 192.168.1.102:80>
ServerName www.c.com
ProxyRequests Off
ProxyVia On
ProxyPreserveHost On
ProxyPass / ajp://192.168.1.101:8009/test/index1.jsp
ProxyPassReverse / ajp://192.168.1.101:8009/test/index1.jsp
<Location />
Allow from all
</Location>
</VirtualHost>
第三种方式实现:
请求流程:Client-->http-->httpd-->mod_jk(ajp)-->tomcat(http connector)
首先安装mod_jk模块:tomcat-connectors-1.2.42-src.tar.gz(依赖httpd-devel)
展开归档后进入native目录,执行
# ./configure --with-apxs=/usr/sbin/apxs
# make && make install
安装完成,开始配置,
Tomcat端主机只需要在之前的基础上需改一个地方:
在Engine中加入jvmRoute属性即可。
Httpd端的配置,需要两个配置文件:
①/etc/httpd/conf.d/workers.propeties
worker.list=srv_A,StatA
worker.srv_A.host=192.168.1.101
worker.srv_A.port=8009
worker.Tomcat.type=ajp13
worker.StatA.type=status
②/etc/httpd/conf.d/mod_jk.conf
/*装载jk_module 路径是相对于/etc/httpd/下*/
LoadModule jk_module modules/mod_jk.so JkWorkersFile /etc/httpd/conf.d/workers.properies
JkLogFile logs/mod_jk.log
JkLogLevel notice
JkMount /* srv_A 此处的"/"是以webapps为根
JkMount /jk_status StatA
Tomcat与Nginx、Apache结合的相关实践的更多相关文章
- Tomcat 搭配 Nginx 还是 Apache 呢?
Apache .Tomcat.Nginx的区别, 哪个与Tomcat搭配效率高? 一. 定义: 1. Apache Apache HTTP服务器是一个模块化的服务器,可以运行在几乎所有广泛使用的计算机 ...
- Apache/Tomcat/JBOSS/Nginx区别
先说Apache和Tomcat的区别: Apache是世界使用排名第一的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一. ...
- tomcat 与 nginx,apache的区别
tomcat 与 nginx,apache的有什么区别 回答一: 题主说的Apache,指的应该是Apache软件基金会下的一个项目——Apache HTTP Server Project:Nginx ...
- 查看nginx | apache | php | tengine | tomcat版本的信息以及如何隐藏版本信息【转】
转自: 查看nginx | apache | php | tengine | tomcat版本的信息以及如何隐藏版本信息 - 追马 - 51CTO技术博客http://lovelace.blog.51 ...
- 简析 Tomcat 、Nginx 与 Apache 的区别
简析 Tomcat .Nginx 与 Apache 的区别 本文讲的是简析 Tomcat .Nginx 与Apache的区别, 经常在用 apache 和 tomcat 等这些服务器,可是总感觉还是不 ...
- 浅析Apache/Tomcat/JBOSS/Nginx之区别
浅析Apache/Tomcat/JBOSS/Nginx服务器之区别 一.Apache和Tomcat的区别 Apache是世界使用排名第一的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上, ...
- Apache/Tomcat/JBOSS/Nginx区别(转)
先说Apache和Tomcat的区别: Apache是世界使用排名第一的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一. ...
- nginx,apache,tomcat的区别
nginx与apache 这里说的apche指apache http server ,与nginx都属于http服务器软件,主要处理静态资源. http server关心的是http协议层面的传输和访 ...
- Tomcat负载均衡、调优核心应用进阶学习笔记(三):LNMT nginx+tomcat、LAMT apache+tomcat、session会话保持、不错的站点
文章目录 LNMT nginx+tomcat LAMT apache+tomcat 基于mod_proxy 单节点 配置基于mod_proxy的负载均衡 基于mod_jk(需要编译安装) 单节点 配置 ...
随机推荐
- 从今日起,我会把OpenGL红宝书上的例子用完整的代码形式写在我的博客中,
1.使用教程:OpenGL红宝书第8版 2.使用的库工具:GLEW和GLFW 3.使用的IDE:vs2012 4.说说目的:完整的看一遍OpenGL,加深印象并且熟练掌握运用OpenGL 5.欢迎有相 ...
- Spring MVC中,事务是否可以加在Controller层
一般而言,事务都是加在Service层的,但是爱钻牛角尖的我时常想:事务加在Controller层可不可以.我一直试图证明事务不止可以加在Service层,还可以加在Controller层,但是没有找 ...
- php 四种基础算法 ---- 快速排序法
4.快速排序法 代码: function quick_sort($arr) { //先判断是否需要继续进行 $length = count($arr); if($length < ...
- html5 localStorage和sessionStorage
该随便来自: http://www.cnblogs.com/yuzhongwusan/archive/2011/12/19/2293347.html html5中的Web Storage包括了两种存储 ...
- Django -- static
和templates一样,Django会自动去各个app根目录中寻找叫static的目录,在该目录下创建一个和app同名的目录,用于存放静态文件(js, css. images...) 使用时,只需要 ...
- android5.0----SVG
SVG ----scalable vector Graphics 可缩放矢量图形 android L 即android 5.0的新特性. 1,SVG是干什么的? 可缩放矢量图形是基于可扩展标记语言(标 ...
- C#编写Windows服务程序图文教程
安装服务程序C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe 要安装的服务程序路径(如F:\***.exe)卸载服务程序C: ...
- android脚步---使用framelayout实现霓虹灯效果
轮换帧布局中7个TextView的背景颜色,会出现上面颜色渐变不断变换. 首先在main.xml文件中进行布局 总体布局为framelayout 中间有7个Textview,代表7种不同的颜色,可以看 ...
- 总结OpenWrt系统基本操作方法
1.OpenWrt系统编译好的固件位于哪个文件夹?root@ald888:/work/openwrt/trunk/bin/ramips# lsopenwrt-ramips-rt305x-mpr-a2- ...
- ZOJ 3696 Alien's Organ 概率论 泊松分布
看了好久的题,但还是看得一脸蒙圈,感觉完全无从下手,我的队友告诉我可能是正太分布之类的,但我感觉不太像,后来才听同学说是泊松分布,才恍然大悟,概率论刚刚学过这里不久,不禁感叹,学会了还要会用啊... ...