Linux初学者学习笔记

20171106 Tomcat(一)

2017-11-07  本文已影响10人  哈喽别样
  • Java语言介绍
  • Java EE和Tomcat
  • Tomcat的主要配置
  • Tomcat的管理工具
  • Tomcat的反向代理

一、Java语言介绍

(一)Java的特征

(二)Java的三个方向

(三)jdk与openjdk

(四)Java代码的运行

(五)java技术体系

(六)JVM运行时区域

(七)jdk的安装

(1)openjdk的安装
yum install java-1.8.0-openjdk-devel
java -version     // 查看当前java环境
(2)oracle jdk的安装
rpm -ivh jdk-8u151-linux-x64.rpm
vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/latest
export PATH=$JAVA_HOME/bin:$PATH
. /etc/profile.d/java.sh 
java -version

二、Java EE和Tomcat

(一)Java EE中的关键模块

(二)Tomcat

(三)Java EE的实现简介

(四)Tomcat的安装

(1)yum安装
yum install tomcat tomcat-docs-webapp tomcat-admin-webapps tomcat-webapps
systemctl start tomcat
(2)官网下载二进制压缩包,解压缩安装
tar xf apache-tomcat-7.0.82.tar.gz -C /usr/local/
cd /usr/local/
ln -sv apache-tomcat-7.0.82/ tomcat
useradd tomcat
setfacl -R -m u:tomcat:rwx ./tomcat/
vim /etc/profile.d/tomcat.sh
  export CATALINA_BASE=/usr/local/tomcat
  export PATH=$CATALINA_BASE/bin:$PATH
. /etc/profile.d/tomcat.sh 
. catalina.sh start     // tomcat由java编写,使用脚本运行将tomcat运行在jvm中

(五)Tomcat的程序环境

(1)tomcat的目录结构

bin:脚本及启动时用到的类
conf:配置文件目录
lib:库文件,Java类库,jar
logs:日志文件目录
temp:临时文件目录
webapps:webapp的默认目录
work:工作目录,存放编译后的字节码文件

(2)catalina.sh --help

run:前台模式启动
run -security:带安全管理的前台模式启动
start:后台模式启动
start -security:带安全管理的后台模式启动
stop:关闭
stop n:等待n秒后关闭
stop -force:强行关闭
stop n -force:等待n秒后,强行关闭
configtest:检查配置
version:查询版本

(3)rpm包安装的程序环境

三、Tomcat的主要配置

(一)tomcat的配置文件构成

(二)tomcat主配置文件:server.xml

(三)JSP WebAPP的组织结构

index.jsp:主页
WEB-INF/:当前webapp的私有资源路径;通常用于存储当前webapp的web.xml和context.xml配置文件
META-INF/:类似于WEB-INF/
classes/:类文件,当前webapp所提供的类
lib/:类文件,当前webapp所提供的类,被打包为jar格式

(四)webapp归档格式

.war:webapp
.jar:EJB的类打包文件(类库)
.rar:资源适配器类打包文件
.ear:企业级webapp

(五)部署(deploy)webapp的相关操作

mkdir -pv /var/lib/tomcat/webapps/test/{WEB-INF,classes,lib}
vim /var/lib/tomcat/webapps/test/index.jsp
<%@ page language="java" %>          // 声明使用的语言
<%@ page import="java.util.*" %>     // 声明引用的类
<html>
        <head>
        <title>Test Page</title>
        </head>
        <body>
        <% out.println("hello world");
        %>
        </body>
</html>
service tomcat restart

登录http:// 192.168.136.229:8080/test,成功显示预期结果

使用tree命令查看/var/cache/tomcat/work/Catalina/localhost/test目录下的结构,可以看到index.jsp文件先通过jasper转化为.java源码文件,继而通过javac编译为.class类文件并被送入jvm中执行

(六)tomcat的常用组件配置

(1)Server组件:
(2)Service组件:
(3)Connector组件:
(4)Engine组件:
(5)Host组件:
vim /etc/tomcat/server.xml     // 创建虚拟主机
<Host name="test.hellopeiyang.com"  appBase="/app/webapps" unpackWARs="true" autoDeploy="true"/>

mkdir -pv /app/webapps/ROOT/{WEB-INF,lib,classes}
vim /app/webapps/ROOT/index.jsp
<%@ page language="java" %>
<%@ page import="java.util.*" %>
<html>
        <head>
        <title>Test Page</title>
        </head>
        <body>
        <% out.println("hellopeiyang test page");
        %>
        </body>
</html>
service tomcat restart
(6)Context组件:
cp -r /app/webapps/ROOT/ /app/data/

vim /etc/tomcat/server.xml
<Host name="test.hellopeiyang.com"  appBase="/app/webapps" unpackWARs="true" autoDeploy="true">
        <Context path="/testpage" docBase="/app/data" reloadable="" />
</Host>

vim /app/data/index.jsp
<%@ page language="java" %>
<%@ page import="java.util.*" %>
<html>
        <head>
        <title>Test Page</title>
        </head>
        <body>
        <% out.println("hellopeiyang another test page");
        %>
        </body>
</html>

service tomcat restart
(7)Valve组件:
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t &quot;%r&quot; %s %b" />
<Valve className="org.apache.catalina.valves.RemoteAddrValve" deny="172\.16\.100\.67"/>
vim /etc/tomcat/server.xml     // 位置在Host组件语句块中
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="node1_access_log." suffix=".log"
pattern="%h %l %u %t &quot;%r&quot; %s %b" />
<Valve className="org.apache.catalina.valves.RemoteAddrValve" deny="192\.168\.136\.129"/>

service tomcat restart
tail /var/log/tomcat/node1_access_log.2017-11-07.log

日志内容存放在/var/log/tomcat/下定义名称的日志文件中

192.168.136.129的主机无法访问

非192.168.136.129的主机可以访问

四、Tomcat的管理工具

(一)tomcat管理工具的使用角色(role)

(二)授权用户manager-gui角色

vim /etc/tomcat/tomcat-users.xml 
<role rolename="manager-gui"/>
<user username="hellopeiyang" password="centos" roles="manager-gui"/>

service tomcat restart

红框中的为三个管理工具页面的连接,从上之下依次为:服务器状态, 管理应用,虚拟主机管理

网络应用管理页面

服务器状态管理页面

(三)授权用户admin-gui角色

vim /etc/tomcat/tomcat-users.xml 
service tomcat restart
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="hellopeiyang" password="centos" roles="manager-gui,admin-gui"/>     // 用户hellopeiyang同时拥有manager-gui和admin-gui角色

虚拟主机管理页面

五、Tomcat的反向代理

(一)nginx反向代理至tomcat

vim /etc/nginx/nginx.conf
server {
        listen       80 default_server;
        index        index.jsp index.html;
        root         /usr/share/tomcat/webapps/ROOT;
        location ~* \.(jsp|do)$  {
                proxy_pass http://127.0.0.1:8080;
        }
    }

nginx -t
nginx -s reload

直接登录192.168.136.230,通过80端口成功访问tomcat服务器

(二)httpd通过http协议反向代理至tomcat

vim /etc/httpd/conf.d/tomcat.conf
<VirtualHost *:80>
        ServerName node1.hellopeiyang.com
        ProxyRequests Off
        ProxyVia On
        ProxyPreserveHost On
        <Proxy *>
                Require all granted
        </Proxy>
        ProxyPass / http://127.0.0.1:8080/
        ProxyPassReverse / http://127.0.0.1:8080/
        <Location />
                Require all granted
        </Location>
</VirtualHost>
httpd -t
systemctl restart httpd

直接登录192.168.136.230,通过80端口成功访问tomcat服务器

(三)httpd通过ajp协议反向代理至tomcat

cp /etc/httpd/conf.d/tomcat.conf /etc/httpd/conf.d/ajp-tomcat.conf
mv /etc/httpd/conf.d/tomcat.conf /etc/httpd/conf.d/tomcat.conf.bak
vim /etc/httpd/conf.d/ajp-tomcat.conf 
<VirtualHost *:80>
        ServerName node1.hellopeiyang.com
        ProxyRequests Off
        ProxyVia On
        ProxyPreserveHost On
        <Proxy *>
                Require all granted
        </Proxy>
        ProxyPass / ajp://127.0.0.1:8009/
        ProxyPassReverse / ajp://127.0.0.1:8009/
        <Location />
                Require all granted
        </Location>
</VirtualHost>
systemctl restart httpd

直接登录192.168.136.230,通过80端口成功访问tomcat服务器。
进入Server Status管理页面,可以看到此时ajp协议开始工作,证明现在通过ajp协议转发

上一篇 下一篇

猜你喜欢

热点阅读