一、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结合的相关实践的更多相关文章

  1. Tomcat 搭配 Nginx 还是 Apache 呢?

    Apache .Tomcat.Nginx的区别, 哪个与Tomcat搭配效率高? 一. 定义: 1. Apache Apache HTTP服务器是一个模块化的服务器,可以运行在几乎所有广泛使用的计算机 ...

  2. Apache/Tomcat/JBOSS/Nginx区别

    先说Apache和Tomcat的区别: Apache是世界使用排名第一的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一. ...

  3. tomcat 与 nginx,apache的区别

    tomcat 与 nginx,apache的有什么区别 回答一: 题主说的Apache,指的应该是Apache软件基金会下的一个项目——Apache HTTP Server Project:Nginx ...

  4. 查看nginx | apache | php | tengine | tomcat版本的信息以及如何隐藏版本信息【转】

    转自: 查看nginx | apache | php | tengine | tomcat版本的信息以及如何隐藏版本信息 - 追马 - 51CTO技术博客http://lovelace.blog.51 ...

  5. 简析 Tomcat 、Nginx 与 Apache 的区别

    简析 Tomcat .Nginx 与 Apache 的区别 本文讲的是简析 Tomcat .Nginx 与Apache的区别, 经常在用 apache 和 tomcat 等这些服务器,可是总感觉还是不 ...

  6. 浅析Apache/Tomcat/JBOSS/Nginx之区别

    浅析Apache/Tomcat/JBOSS/Nginx服务器之区别 一.Apache和Tomcat的区别 Apache是世界使用排名第一的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上, ...

  7. Apache/Tomcat/JBOSS/Nginx区别(转)

    先说Apache和Tomcat的区别: Apache是世界使用排名第一的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一. ...

  8. nginx,apache,tomcat的区别

    nginx与apache 这里说的apche指apache http server ,与nginx都属于http服务器软件,主要处理静态资源. http server关心的是http协议层面的传输和访 ...

  9. Tomcat负载均衡、调优核心应用进阶学习笔记(三):LNMT nginx+tomcat、LAMT apache+tomcat、session会话保持、不错的站点

    文章目录 LNMT nginx+tomcat LAMT apache+tomcat 基于mod_proxy 单节点 配置基于mod_proxy的负载均衡 基于mod_jk(需要编译安装) 单节点 配置 ...

随机推荐

  1. Spring Boot 系列教程17-Cache-缓存

    缓存 缓存就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找.由于缓存的运行速度比内存快得多,故缓存的作用就是帮 ...

  2. 第一章C语言简介及输出函数 上机部分

    第一章C语言简介及输出函数 上机1 #include "stdio.h" void main() { printf("南方学院,你好!\n"); printf( ...

  3. display:block;inline;inline-block大总结

    总体概念 block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素).block元素通 ...

  4. 编写MR代码中,JAVA注意事项

    在编写一个job的过程中,发现代码中抛出 java.lang.UnsupportedOperationException 异常. 编写相似逻辑的测试代码: String[] userid = {&qu ...

  5. 尝试在数据库 5 中提取逻辑页 (1:1640) 失败。该逻辑页属于分配单元XXX ,而非 XXX。

    此信息表明数据库或表 已经部分损坏可以通过以下步骤尝试修复: 1. DBCC CHECKDB 重启服务器后,在没有进行任何操作的情况下,在SQL查询分析器中执行以下SQL进行数据库的修复,修复数据库存 ...

  6. codeforces 369 div2 C dp

    http://codeforces.com/contest/711 C. Coloring Trees time limit per test 2 seconds memory limit per t ...

  7. 详细讲解MOSFET管驱动电路(转)

    作者:   来源:电源网 关键字:MOSFET 结构 开关 驱动电路 在使用MOS管设计开关电源或者马达驱动电路的时候,大部分人都会考虑MOS的导通电阻,最大电压等,最大电流等,也有很多人仅仅考虑这些 ...

  8. CentOS6.5 安装snorby

    如果下列任何组件之一已经被安装,请酌情忽略 1.Snort 参照 CentOS6.5 安装snort 2.GIT 系统自带 3.Ruby 版本限制> 1.9.2 系统自带版本过低首先卸载掉,注意 ...

  9. CentOS 6.5添加163源

    1.首先备份/etc/yum.repos.d/CentOS-Base.repo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS ...

  10. js优化原则

    首先,与其他语言不同,JS的效率很大程度是取决于JS engine的效率.除了引擎实现的优劣外,引擎自己也会为一些特殊的代码模式采取一些优化的策略.例如FF.Opera和Safari的JS引擎,都对字 ...