Tomcat与Nginx、Apache结合的相关实践
2017-01-16 15:41
399 查看
一、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端配置:
Nginx端配置:
二、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端配置:
如果是httpd2.4+版本,配置如下:
第二种方式实现:
Tomcat端无需变动
Httpd端仅需修改协议和端口即可,配置如下:
第三种方式实现:
请求流程: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
②/etc/httpd/conf.d/mod_jk.conf
简介:在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结合Apache、Nginx实现高性能的web服务器
- 利用apache的proxy-ajp做apache与tomcat的结合
- Windows环境下的tomcat + apache配置(绝对实践操作版)
- 用nginx+tomcat来代替apache+jk+tomcat
- linux apache tomcat mysql php 基于虚拟机的相关重要的知识点
- 结合Apache和Tomcat实现集群和负载均衡
- Apache 2.X + Tomcat 5.X 配置实践
- nginx结合apache
- Apache2.2.6整合Tomcat6.0.18 (绝对实践过)
- 结合Apache和Tomcat实现集群和负载均衡
- (转)利用apache的proxy-ajp做apache-2.2.0与tomcat-5.0.30的结合
- Apache和Tomcat结合使用入门
- 结合Apache和Tomcat实现集群和负载均衡
- 结合Apache和Tomcat实现集群和负载均衡
- nginx做反向代理结合apache
- [转]Win32环境下的Tomcat5.5.17与apache2.2的集群实践
- 结合Apache和Tomcat实现集群和负载均衡
- 结合Apache和Tomcat实现集群和负载均衡
- Windows环境下的tomcat + apache配置(绝对实践操作版)