tomcat简单基础

tomcat

网站搭建

[root@web1 ~]# yum -y install java-1.8.0-openjdk
[root@web1 ~]# tar -xf apache-tomcat-8.0.30.tar.gz
[root@web1 ~]# tar -xf apache-tomcat-8.0.30.tar.gz
[root@web1 ~]# cp -r apache-tomcat-8.0.30 /usr/local/tomcat
[root@web1 ~]# cd /usr/local/tomcat
[root@web1 tomcat]#	 ls 
tomcat   目录介绍:		    conf  存放配置文件				logs  存放日志		
webapps  存放网站页面	  	work  存放了编译的网站页面		temp  临时文件目录
lib     库文件目录			bin  存放主程序

[root@web1 tomcat]# bin/startup.sh  #开启服务
[root@web1 tomcat]# bin/shutdown.sh  #关闭服务
[root@web1 tomcat]# ss -ntulp | grep java #查看tomcat状态端口号有三个才能正常使用 8005关闭服务 8009测试  8080服务
火狐打开http://192.168.1.18:8080

无法正常开启tomcat时解决方案

tomcat启动调用/dev/random里的随机数据,数据不多tomcat不能够成功开启或稳定运行。故创建软连接调用/dev/urandom的随机数。

解决方案
[root@web1 tomcat]#mv /dev/random /dev/random.bak  #备份原有random文件
[root@web1 tomcat]#ln -s /dev/urandom /dev/random  #使用urandom创建软连接替代random即可
[root@web1 tomcat]# killall java  
[root@web1 tomcat]# bin/startup.sh  
[root@web1 tomcat]# ss -ntulp | grep java  

测试tomcat服务

[root@web1 tomcat]# echo "tomcat-test~~~~" >  webapps/ROOT/test.html
http://192.168.1.18:8080/test.html
[root@web1 tomcat]#vim webapps/ROOT/test.jsp   #Java语言  .jsp是固定后缀,动态网站
<html> 
<body>
<center>
Now time is: <%=new java.util.Date()%>   
</center>
</body>
</html>
http://192.168.1.18:8080/test.jsp    #使用浏览器访问可以看到当前时间

利用tomcat搭建虚拟主机

[root@web1 tomcat]# vim conf/server.xml
122 <Host name="www.b.com"   appBase="web_b" 
123          unpackWARs="true"   autoDeploy="true"> 
#默认目录是/usr/local/tomcat/webapps目录下的ROOT下,这里修改了目录
124 </Host>

125 <Host name="www.a.com"  appBase="webapps"  # 默认的虚拟主机,改成a网站
			unpackWARs="true"   autoDeploy="true"> 
	</Host>
[root@web1 tomcat]# mkdir -p web_b/ROOT  #在/usr/local/tomcat目录下创建b网站的测试目录
[root@web1 tomcat]# echo "tomcat-A~~" > webapps/ROOT/index.html  #创建a网站测试页面
[root@web1 tomcat]# echo "tomcat-B~~" > web_b/ROOT/index.html   #创建b网站测试页面
[root@web1 tomcat]# vim /etc/hosts
192.168.1.18  www.a.com  www.b.com  www.c.com
[root@web1 tomcat]# curl www.a.com:8080
tomcat-A~~
[root@web1 tomcat]# curl www.b.com:8080
tomcat-A~~

autoDeploy和unpackWARs 自动解WAR包。自动更新

122 <Host name="www.b.com" appBase="web_b"  
		unpackWARs="true"  autoDeploy="true">     #自动解WAR包。自动更新 
123 </Host>

测试自动解war包功能:

[root@web1 ~]# yum -y install java-1.8.0-openjdk-devel  #安装创建war包的工具包
[root@web1 ~]# jar -cf xyz.war /var/log  #创建war包
[root@web1 ~]# /usr/local/tomcat/bin/shutdown.sh
[root@web1 ~]# /usr/local/tomcat/bin/startup.sh
[root@web1 ~]# cp xyz.war /usr/local/tomcat/web_b   #把war包扔到虚拟主机的网页目录下
[root@web1 ~]# ls /usr/local/tomcat/web_b   #上传后会自动解开war包,并产生目录

使用tomcat搭建https加密网站

[root@web1 tomcat]# vim conf/server.xml
 84     <!--     注释开始,dd删掉
 85     <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
 86                maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
 87                clientAuth="false" sslProtocol="TLS" 
		 keystoreFile="/usr/local/tomcat/keystore"  keystorePass="123456"/>  
##新增keystore    123456可改变,需要跟下面操作一致
 88     --> 注释末尾,dd删掉
[root@web1 tomcat]# keytool -genkeypair  -alias tomcat  -keyalg RSA  -keystore  /usr/local/tomcat/keystore  
Enter keystore password: 123456  #输入密钥库口令同配置文件 
Re-enter new password:
What is your first and last name?
  [Unknown]:  xx
What is the name of your organizational unit?
  [Unknown]:  xx
What is the name of your organization?
  [Unknown]:  xx
What is the name of your City or Locality?
  [Unknown]:  xx
What is the name of your State or Province?
  [Unknown]:  xx
What is the two-letter country code for this unit?
  [Unknown]:  xx
Is CN=xx, OU=xx, O=xx, L=xx, ST=xx, C=xx correct?
  [no]:  y

Enter key password for <tomcat>
        (RETURN if same as keystore password):
Re-enter new password:

Warning:
The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using "keytool -importkeystore -srckeystore /usr/local/tomcat/keystore -destkeystore /usr/local/tomcat/keystore -deststoretype pkcs12".
[root@web1 tomcat]# bin/startup.sh
[root@web1 tomcat]# ss -ntulp | grep java		#四个端口8005,8009,8080,8443
[root@web1 tomcat]# curl -k https://www.b.com:8443
tomcat-B~~

为b网站虚拟主机添加日志

[root@web1 tomcat]# vim conf/server.xml		# 复制137-139到创建的虚拟web机内,修改
137         <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
138                prefix="localhost_access_log" suffix=".txt"
139                pattern="%h %l %u %t &quot;%r&quot; %s %b" />

121 <Host name="www.b.com" appBase="web_b"
122         unpackWARs="true" autoDeploy="true">
123         <Context path="" docBase=""/>
124         <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
125                prefix="www.b.com_access" suffix=".log"
126                pattern="%h %l %u %t &quot;%r&quot; %s %b" />
127 </Host>
[root@web1 tomcat]# bin/shutdown.sh
[root@web1 tomcat]# bin/startup.sh
[root@web1 tomcat]# curl  www.b.com:8080
tomcat-B~~
root@web1 tomcat]# ls logs/
 www.b.com_access.2022-01-19.log

页面路径测试

调整默认的ROOT目录到 tomcat/web_b/

<Host name="www.b.com" appBase="web_b"    #网页在默认在web_b下的ROOT目录
       unpackWARs="true" autoDeploy="true">
<Context path="" docBase=""/>       #直接在web_b下添加
</Host>
[root@web1 tomcat]# killall java
[root@web1 tomcat]# bin/startup.sh
[root@web1 tomcat]# echo "web_b/index.html"> web_b/index.html
[root@web1 tomcat]# curl www.b.com:8080
web_b/index.html

tomcat/web_b/abc/目录

[root@web1 tomcat]# vim conf/server.xml
121       </Realm>
122 <Host name="www.b.com" appBase="web_b"
123        unpackWARs="true" autoDeploy="true">
124 <Context path="" docBase="abc"/>		#doc添加了abc
125 </Host>
[root@web1 tomcat]# bin/shutdown.sh
[root@web1 tomcat]# bin/startup.sh
[root@web1 tomcat]# ss -ntulp | grep java    //由于此时abc目录未创建java无法启动
[root@web1 tomcat]# mkdir web_b/abc
[root@web1 tomcat]# echo "web_b/abc/index.html"> web_b/abc/index.html
[root@web1 tomcat]# bin/shutdown.sh
[root@web1 tomcat]# bin/startup.sh
[root@web1 tomcat]# curl www.b.com:8080
web_b/abc/index.html

/abc

[root@web1 tomcat]# vim conf/server.xml
121       </Realm>
122 <Host name="www.b.com" appBase="web_b"
123        unpackWARs="true" autoDeploy="true">
124 <Context path="" docBase="/abc"/>   #网站的存放位置由appBase="web_b"  docBase="/abc"两部分确定,默认在web_b目录内,docBase为"空",网页放web_b/ROOT目录下,为abc放web_b/abc目录下,为/abc则不受前者影响,存放到绝对路径/abc目录下
125 </Host>
[root@web1 tomcat]# echo "/abc/index.html" > /abc/index.html
[root@web1 tomcat]# curl www.b.com:8080
/abc/index.html

域名增加/test/

[root@web1 tomcat]# vim conf/server.xml
<Host name="www.b.com" appBase="web_b"
       unpackWARs="true" autoDeploy="true">
<Context path="/test" docBase="/abc"/>
</Host>   
[root@web1 tomcat]# curl www.b.com:8080/test/     #访问域名需要加path路径
/abc/index.html

联合常用

<Host name="www.b.com" appBase="web_b"
       unpackWARs="true" autoDeploy="true">
<Context path="/test" docBase="abc"/>
</Host>
[root@web1 tomcat]# curl www.b.com:8080/test/      #红色字三个部分连接到一块
web_b/abc/index.htm
[root@web1 tomcat]# echo "web_b/ROOT/index.html" > web_b/ROOT/index.html
[root@web1 tomcat]# curl www.b.com:8080/    #默认web_b下的网页
web_b/ROOT/index.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值