天天看点

Tomcat配置及其LNMT/LAMT/LNAMT实现方式

一、简介

    前面所讲的web服务主要是apache和nginx,apache适合比较重量级的并发,且不适合并发小文件,而nginx则有这一优点,除此之外tomcat在企业级应用中比较广泛,因为此web应用比较安全,漏洞比较少,Tomcat服务器是一个免费的开源的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选,受到当今互联网企业的青睐。

    二、Tomcat安装

    搭建tomcat运行环境需分两步实现,jdk+tomcat,tomcat的安装方式有两种,系统自带的rpm包安装及其使用官方的二进制包,同时jdk的安装方式也有两种,系统自带的rpm包及官方下载的oracle的jdk的rpm包。 

    安装方式一如下所示:

1

2

<code>yum -y </code><code>install</code> <code>java-1.7.0-openjdk_x86_64 java-1.7.0-openjdk-devel_x86_64</code>

<code>yum -y </code><code>install</code> <code>tomcat tomcat-lib tomcat-webapps tomcat-admin-webapp</code>

    安装方式二如下所示:

3

4

5

6

7

8

9

10

<code>rpm -ivh jdk-7u79-linux-x64.rpm </code>

<code>tar</code> <code>xf apache-tomcat-7.0.57.</code><code>tar</code><code>.gz -C </code><code>/usr/local/</code>  

<code>ln</code> <code>-s apache-tomcat-7.0.57 tomat</code>

<code>vi</code> <code>/etc/profile</code><code>.d</code><code>/tomcat</code><code>.sh </code><code>#通过官网下载二进制包及其rpm安装的tomcat和jdk需导入环境变量</code>

<code>CATALINA_BASE=</code><code>/usr/local/tomcat</code> <code>#tomcat导入环境变量</code>

<code>PATH=$CATALINA_BASE</code><code>/bin</code><code>:$PATH</code>

<code>export</code> <code>CATALINA_BASE PATH</code>

<code>vi</code> <code>/etc/profile</code><code>.d</code><code>/java</code><code>.sh  </code><code>#java导入环境变量,和方式一安装jdk环境变量有很大的区别</code>

<code>JAVA_HOME=</code><code>/usr/java/latest</code>

<code>PATH=$JAVA_HOME</code><code>/bin</code><code>:$PATH</code>

    三、Tomcat配置文件详解  

    其配置文件如下:

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

<code>[root@node2 conf]</code><code># ll</code>

<code>total 204</code>

<code>drwxr-xr-x 6 tomcat tomcat     87 Nov 20 19:24 Catalina</code>

<code>-rw------- 1 tomcat tomcat  12257 Nov  3  2014 catalina.policy </code><code>#当使用-security选项来启动tomcat实例时,会读取配置文件来实现基于安全的策略运行方式</code>

<code>-rw------- 1 tomcat tomcat   6294 Nov  3  2014 catalina.properties </code><code>#catalina相关属性配置</code>

<code>-rw------- 1 tomcat tomcat   1394 Nov  3  2014 context.xml </code><code>#每个webapps都可以有专用的配置文件,这些配置文件通过位于webapps应用程序自己的目录下的WEEB-INF目录中,此content.xml为每个webapps提供默认配置</code>

<code>-rw------- 1 tomcat tomcat   3288 Nov  3  2014 logging.properties </code><code>#日志系统相关配置</code>

<code>-rw------- 1 tomcat tomcat   8815 Nov 21 20:52 server.xml </code><code>#主配置文件</code>

<code>-rw------- 1 tomcat tomcat   1663 Nov 20 19:17 tomcat-</code><code>users</code><code>.xml </code><code>#用户认证和账号和密码文件</code>

<code>-rw------- 1 tomcat tomcat 163385 Nov  3  2014 web.xml </code><code>#每个webapps只有在部署后才能够被访问,此文件则用于为各个webapps定义默认的部署方式</code>

<code>[root@node2 conf]</code><code>#</code>

<code>#web相关的组织结构</code>

<code>index.jsp </code><code>#当前webapps的主页 </code>

<code>WEB-INF/:当前webapps的私有资源目录,通常存放当前webapps自用的web.xml  </code>

<code>META-INF/:当前webapps的私有资源目录,通常存放webapps自用的content.xml </code>

<code>class/:类文件,当前webapps的私有类 </code>

<code>lib/:当前webapps的私有类被打包成jar的格式  </code>

<code>webapps的归档格式: </code>

<code>    </code><code>.war:webapp</code>

<code>    </code><code>.jar:ejb的类打包文件</code>

<code>    </code><code>.rar:资源配置类打包文件</code>

<code>    </code><code>.ear:企业及webapps</code>

<code>导入环境变量:</code>

<code>cat</code> <code>java.sh</code>

<code>export</code> <code>JAVA_HOME PATH</code>

<code>cat</code> <code>tomcat.sh</code>

<code>CATALINA_BASE=</code><code>/usr/local/tomcat</code>

    四、启动tomcat配置应用

    手动添加一个测试应用目录:

    1、创建一个webapps特有的目录结构 

    mkdir -pv myapp/{class,WEB-INF,META-INF,lib} 

    2、提供一个webapps的主页面(自行解决)

    3、启动应用程序,访问默认主页面及其myapp页面

    systemctl start tomat   

    实验图如下:

    4、启动管理页面工具编辑tomcat-user.xml配置文件,添加如下配置重启服务。

<code>&lt;role rolename=</code><code>"manager-gui"</code><code>/&gt;</code>

<code>&lt;role rolename=</code><code>"admin-gui"</code><code>/&gt;</code>

<code>&lt;user username=</code><code>"tomcat"</code> <code>password=</code><code>"tomcat"</code> <code>roles=</code><code>"manager-gui,admin-gui"</code><code>/&gt;</code>

    五、实战配置LNMT/LAMT、LNAMT实现动静分离

    LNMT实现说明:只需配置nginx的server标签,在标签中添加proxy_pass http://ip:8080即可向后端主机反代。

    基于LAMT实现方式有两种,一种基于http,另一种基于ajp,如下配置:

<code>1、第一种方式的配置机制,使用虚拟主机</code>

<code>&lt;VirtualHost *:80&gt;</code>

<code>ServerName web.alren.com</code>

<code>ProxyRequests Off</code>

<code>ProxyVia On</code>

<code>ProxyPreserveHost On</code>

<code>&lt;Proxy *&gt;</code>

<code>Require all granted</code>

<code>&lt;</code><code>/Proxy</code><code>&gt;</code>

<code>ProxyPass / http:</code><code>//node2</code><code>.alren.com:8080/</code>

<code>proxyPassReverse / http:</code><code>//node2</code><code>.alren.com:8080/</code>

<code>&lt;Location /&gt;</code>

<code>&lt;</code><code>/Location</code><code>&gt;</code>

<code>&lt;</code><code>/VirtualHost</code><code>&gt;</code>

<code>2、使用ajp机制,使用虚拟主机    </code>

<code>ProxyPass / ajp:</code><code>//node2</code><code>.alren.com:8009/</code>

<code>proxyPassReverse / ajp:</code><code>//node2</code><code>.alren.com:8009/</code>

    当配置成功后访问主页,模拟前端代理宕机,则原有的代理将不会反代至其页面,报错为请求不存在,无法访问页面。

    LNAMT实现方式则通过nginx做前端调度,将用户的请求反代至后端的主机,其实现方式非常简单,只需在nginx上配置upstream组即可,在server标签中调用即可,结合正则表达式模式匹配可实现动静分离。另起一台服务器其配置简单化代码如下所示:

<code>http {</code>

<code>.....</code>

<code>upstream tcsrvs {</code>

<code>server 10.1.10.65:8080;</code>

<code>server 10.1.10.66:8080;</code>

<code>    </code><code>}</code>

<code>    </code><code>.....</code>

<code>}</code>

<code>server {</code>

<code>......</code>

<code> </code><code>location ~* \.(jsp|</code><code>do</code><code>)$ {</code>

<code>proxy_pass http:</code><code>//tcsrvs</code><code>;</code>

<code>    </code><code>......</code>

    总结:tomcat的配置比起apache/ngnix略微复杂一点点,但了解过前面所学的web知识再来配置tomcat,可以说是游刃有余,与此同时,可采用http做前端调度,其实现效果不亚于nginx,其可实现会话粘性等,此内容将在以后的文章中介绍。

本文转自chengong1013 51CTO博客,原文链接:http://blog.51cto.com/purify/1875977,如需转载请自行联系原作者