欢迎光临
我们一直在努力

Tomcat yum安装和Tomcat编译安装及应用部署

2、tomcat应用程序部署

 

每个组件几乎都是通过特有的类来实现,而且有的组件还不止一种实现方式 Server:tomcat实例,即运行的一个jvm进程;监听于8005端口接收“SHUTDOWN”。各server监听的端口不能相同,因此,一个物理主机上启动多个server实例应该使用不同的端口; service:用于实现将一个或多个connector关联至一个engine; connector组件: 进入tomcat的请求可分为两类: tomcat做为独立的应用程序服务器:standalone,此时,请求将来自于浏览器; http, https tomcat做为应用程序服务器:请求将来自于前面反代主机; httpd: http, https, ajp nginx: http, https 属性: address:监听的IP地址; maxThreads:最大并发连接数,默认为150; port:监听的端口; protocol:连接器使用的协议,一般为HTTP/1.1或AJP/1.3; redirecPort: connectionTimeout:连接的超时时长,单位为毫秒,默认为60000; enableLookups: acceptCount:定义等待队列的长度; scheme: debug: secure: clinetAuth: sslProtocol: Engine:Servlet的一个实例,即servlet引擎,其内部可以有一个或多个Host组件来定义站点;通常需要通过defaultHost的属性定义默认虚拟主机; 属性: name= defaultHost= jvmRoute= Host组件: 位于Engine容器中用于接收请求并进行相应处理的主机或虚拟主机 常用属性说明: 1) appBase:此Host的webapps目录,即存放非归档的web应用程序的目录或归档后的WAR文件的目录路径;可以使用基于$CATALINA_HOME的相对路径; 2) autoDeploy:在Tomcat处于运行状态时放置于appBase目录中的应用程序文件是否自动进行deploy;默认为true; 3) unpackWars:在启用此webapps时是否对WAR格式的归档文件先进行展开;默认为true;
示例:

- 服务器端
修改server.xml,添加Host主机
~]# cd /usr/local/tomcat/conf/
conf]# vim server.xml
<Host name="node2"  appBase="/data/webapps"
unpackWARs="true" autoDeploy="true">
</Host>

conf]# mkdir -pv /data/webapps/ROOT
mkdir: 已创建目录 "/data"
mkdir: 已创建目录 "/data/webapps"
mkdir: 已创建目录 "/data/webapps/ROOT"
conf]# cp ../webapps/myapp/index.jsp /data/webapps/ROOT/
conf]# mkdir /data/webapps/ROOT/{classes,lib,WEB-INF,META-INF}
修改index.jsp内容,方便后续辨认是哪个主机
conf]# vim /data/webapps/ROOT/index.jsp 
<%@ page language="java" %>
<%@ page import="java.util.*" %>
<html>
    <head>
        <title>JSP Test Page</title>
    </head>
    <body>
        <% out.println("hello world from /data/webapps");
        %>
    </body>
</html>

catalina重启
catalina.sh stop
catalina.sh configtest
catalina.sh start

-客户端
首先要保证客户端可以解析node这个主机
 ~]# ping node2
PING node2 (192.168.150.138) 56(84) bytes of data.
64 bytes from node2 (192.168.150.138): icmp_seq=1 ttl=64 time=1.69 ms
访问测试:
~]# curl http://node2:8080  此时访问的是node2的目录


<html>
    <head>
        <title>JSP Test Page</title>
    </head>
    <body>
        hello world from /data/webapps

    </body>
</html>

[root@localhost ~]# curl http://192.168.150.138:8080    访问ip时还是访问原目录

<!DOCTYPE html>


<html lang="en">
    <head>
        <title>Apache Tomcat/7.0.55</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>

tomcat自带Host Manager配置
配置方法和Manager App相同,我只要在刚才manager app配置中添加Host Manager属性即可,点击按钮也会出现提示画面

 


修改内容为:
conf]# vim tomcat-users.xml
<tomcat-users>
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>
修改后重启catalina
catalina.sh stop
catalina.sh configtest
catalina.sh start

此时在Host Manager界面可以看到我刚才添加的HOST主机

Context组件:
示例:

- 服务器端
conf]# vim server.xml
在原Host内容中添加Context内容
<Host name="node2" appBase="/data/webapps"
unpackWARs="true" autoDeploy="true">
<Context path="/test" docBase="testapp" reloadable="true">
</Context>
</Host>

创建testapp测试页面
conf]# cp /data/webapps/ROOT/ /data/webapps/testapp -r
conf]# vim /data/webapps/testapp/index.jsp
<%@ page language="java" %>
<%@ page import="java.util.*" %>
<html>
<head>
<title>JSP Test Page for Context</title>
</head>
<body>
<% out.println("hello world from /data/webapps/testapp");
%>
</body>
</html>

catalina重启
catalina.sh stop
catalina.sh configtest
catalina.sh start

-客户端访问测试:
访问node2
[root@localhost conf]# curl http://node2:8080

<html>
<head>
<title>JSP Test Page</title>
</head>
<body>
hello world from /data/webapps

</body>
</html>

访问Conext目录
[root@localhost conf]# curl http://node2:8080/test/

<html>
<head>
<title>JSP Test Page for Context</title>
</head>
<body>
hello world from /data/webapps/testapp

</body>
</html>
Value组件:
示例:
继续在刚才的测试示例中添加Value组件:

- 服务器端
制定日志格式,设定testapp的访问控制(192.168.150.139为客户端主机)
conf]# vim server.xml
<Host name="node2" appBase="/data/webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="node2_access_log." suffix=".log"
pattern="%h %l %u %t &quot;%r&quot; %s %b" />
<Context path="/test" docBase="testapp" reloadable="true">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" deny="192\.168\.150\.139" />
</Context>
</Host>
重启catalina

- 客户端访问
conf]# curl http://node2:8080 访问node2是正常的

<html>
<head>
<title>JSP Test Page</title>
</head>
<body>
hello world from /data/webapps

</body>
</html>

conf]# curl http://node2:8080/test/ 访问test被forbidden
<html><head><title>Apache Tomcat/7.0.55 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans
-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 403 - </h1><HR size="1" noshade="noshade"><p><b>type</b> Status report</p><p><b>message</b> <u></u></p><p><b>description</b> <u>Access to the specified resource has been forbidden.</u></p><HR size="1" noshade="noshade"><h3>Apache Tomcat/7.0.55</h3></body></html>

- 服务器端日志
[root@localhost logs]# pwd
/usr/local/tomcat/logs
[root@localhost logs]# ls
catalina.2017-04-26.log localhost.2017-04-26.log node2_access_log.2017-04-26.log
catalina.out localhost_access_log.2017-04-26.txt
host-manager.2017-04-26.log manager.2017-04-26.log
logs]# cat node2_access_log.2017-04-26.log
192.168.150.139 - - [26/Apr/2017:15:03:37 +0800] "GET / HTTP/1.1" 200 116
192.168.150.139 - - [26/Apr/2017:15:03:50 +0800] "GET /test/ HTTP/1.1" 403 961

1 2 3 4
赞(0) 打赏
未经允许不得转载:运维那些事 » Tomcat yum安装和Tomcat编译安装及应用部署

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏