Tomcat笔记

本文详细记录了在Linux环境下配置Tomcat虚拟主机的过程,包括设置两个域名www.a.com和www.b.com,实现不同域名对应不同根路径,支持SSL加密通讯,以及配置独立的访问日志文件。此外,还涉及到了如何配置Tomcat集群环境,通过修改server.xml,创建虚拟主机,设置首页目录,创建私钥和证书,以及调整日志文件,最后进行了客户端测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Tomcat

准备工作

JDK环境安装

# yum -y install  java-1.8.0-openjdk                //安装JDK
# yum -y install java-1.8.0-openjdk-headless        //安装JDK
# java -version									//查看JAVA版本

tomcat环境安装

# tar -xf  apache-tomcat-8.0.30.tar.gz
# mv apache-tomcat-8.0.30  /usr/local/tomcat
# ls /usr/local/tomcat
bin/                                            //主程序目录
lib/                                            //库文件目录
logs/                                          //日志目录  
temp/                                         //临时目录
work/                                        //自动编译目录jsp代码转换servlet
conf/                                        //配置文件目录
webapps/                                        //页面目录
# /usr/local/tomcat/bin/startup.sh //启动服务
# ss -nutlp |grep java        //查看java监听的端口
tcp        0      0 :::8080              :::*                LISTEN      2778/java 
tcp        0      0 :::8009              :::*                LISTEN      2778/java                     
tcp        0      0 ::ffff:127.0.0.1:8005     :::*         LISTEN       2778/java 

# firefox http://192.168.2.100:8080  //测试访问

修改tomcat配置文件

创建JSP测试页面并测试

# vim  /usr/local/tomcat/webapps/ROOT/test.jsp  //编写基于java语言的动态页面
<html>
<body>
<center>
Now time is: <%=new java.util.Date()%>            //显示服务器当前时间
</center>
</body>
</html>

# firefox http://192.168.2.100:8080
# firefox http://192.168.2.100:8080/test.jsp

虚拟主机

  • 实现两个基于域名的虚拟主机,域名分别为:www.a.com和 www.b.com
  • 使用www.a.com域名访问的页面根路径为/usr/local/tomcat/a/ROOT
  • 使用www.b.com域名访问的页面根路径为/usr/local/tomcat/b/base
  • 访问www.a.com/test时,页面自动跳转到/var/www/html目录下的页面
  • 访问页面时支持SSL加密通讯
  • 私钥、证书存储路径为/usr/local/tomcat/conf/cert
  • 每个虚拟主机都拥有独立的访问日志文件
  • 配置tomcat集群环境

实现:

修改server.xml配置文件,创建两个域名的虚拟主机,修改如下两个参数块:

# cat /usr/local/tomcat/conf/server.xml
<Server>
   <Service>
     <Connector port=8080 />
     <Connector port=8009 />
     <Engine name="Catalina" defaultHost="localhost">
<Host name="www.a.com" appBase="a" unpackWARS="true" autoDeploy="true">
</Host>
<Host name="www.b.com" appBase="b" unpackWARS="true" autoDeploy="true">
</Host>
… …

创建虚拟主机对应的页面根路径

# mkdir -p  /usr/local/tomcat/{a,b}/ROOT
# echo "AAA"   > /usr/local/tomcat/a/ROOT/index.html
# echo "BBB" > /usr/local/tomcat/b/ROOT/index.html

重启tomcat服务

# /usr/local/tomcat/bin/shutdown.sh
# /usr/local/tomcat/bin/startup.sh

测试访问

# vim /etc/hosts
… …
192.168.2.100      www.a.com  www.b.com
[root@proxy ~]# firefox http://www.a.com:8080/        //注意访问的端口为8080
[root@proxy ~]# firefox http://www.b.com:8080/

修改www.b.com网站的首页目录为base

# vim /usr/local/tomcat/conf/server.xml
… …
<Host name="www.a.com" appBase="a" unpackWARS="true" autoDeploy="true">
</Host>
<Host name="www.b.com" appBase="b" unpackWARS="true" autoDeploy="true">
<Context path="" docBase="base"/>
</Host>
… …
[root@web1 ~]# mkdir  /usr/local/tomcat/b/base
[root@web1 ~]# echo "BASE" > /usr/local/tomcat/b/base/index.html
[root@web1 ~]# /usr/local/tomcat/bin/shutdown.sh
[root@web1 ~]# /usr/local/tomcat/bin/startup.sh


# firefox http://www.b.com:8080/        //结果为base目录下的页面内容

跳转 当用户访问http://www.a.com/test打开/var/www/html目录下的页面

# vim /usr/local/tomcat/conf/server.xml
… …
<Host name="www.a.com" appBase="a" unpackWARS="true" autoDeploy="true">
<Context path="/test" docBase="/var/www/html/" />
</Host>
<Host name="www.b.com" appBase="b" unpackWARS="true" autoDeploy="true">
<Context path="" docBase="base" />
</Host>
… …
# echo "Test" > /var/www/html/index.html
# /usr/local/tomcat/bin/shutdown.sh
# /usr/local/tomcat/bin/startup.sh
firefox http://www.a.com:8080/test    
//返回/var/www/html/index.html的内容
//注意,访问的端口为8080

创建加密用的私钥和证书文件

# keytool -genkeypair -alias tomcat -keyalg RSA -keystore /usr/local/tomcat/keystore                //提示输入密码为:123456
//-genkeypair     生成密钥对
//-alias tomcat     密钥别名
//-keyalg RSA     定义密钥算法为RSA算法
//-keystore         定义密钥文件存储在:/usr/local/tomcat/keystore

再次修改server.xml配置文件,创建支持加密连接的Connector

vim /usr/local/tomcat/conf/server.xml
… …
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
keystoreFile="/usr/local/tomcat/keystore" keystorePass="123456" clientAuth="false" sslProtocol="TLS" />
//备注,默认这段Connector被注释掉了,打开注释,添加密钥信息即可

重启服务器

# /usr/local/tomcat/bin/shutdown.sh
# /usr/local/tomcat/bin/startup.sh

客户端设置host文件,并浏览测试页面进行测试(proxy充当客户端角色)

vim /etc/hosts
… …
192.168.2.100      www.a.com  www.b.com
# firefox https://www.a.com:8443/
# firefox https://www.b.com:8443/
# firefox https://192.168.2.100:8443/

为每个虚拟主机设置不同的日志文件

# vim /usr/local/tomcat/conf/server.xml
.. ..
<Host name="www.a.com" appBase="a" unpackWARS="true" autoDeploy="true">
<Context path="/test" docBase="/var/www/html/" />
#从默认localhost虚拟主机中把Valve这段复制过来,适当修改下即可
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="a_access" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>
<Host name="www.b.com" appBase="b" unpackWARS="true" autoDeploy="true">
<Context path="" docBase="base" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="b_access" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>
.. ..

重启后查看

ls /usr/local/tomcat/logs/

集群 参考nginx中的设置

#vim  /usr/local/nginx/conf/nginx.conf
http{
    upstream toms {
        server 192.168.2.100:8080;
        server 192.168.2.200:8080;
    }
    server  {
        listen 80;
        server_name localhost;
        location / {
            proxy_pass  http://toms;
        }
    }
}  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值