Tomcat服务器 、 Tomcat应用案例、Maven应用案例

链接

一,使用tomcat搭建网站服务

cd ~/lnmp_soft/
tar -xf apache-tomcat-8.0.30.tar.gz
cp -r apache-tomcat-8.0.30 /usr/local/tomcat
cd /usr/local/tomcat/
yum -y install java-1.8.0-openjdk
systemctl stop firewalld

tomcat目录:

bin 存放主要程序
logs 存放日志
conf 配置文件
webapps 存放网站页面
lib 存放库文件
work 存放编译之后的页面

[root@proxy tomcat]# bin/startup.sh   //开启服务
http://192.168.2.5:8080   //使用火狐访问
netstat -ntulp | grep java   //检查如果有8005、8009、8080端口则正常

但有时会出现端口缺少导致tomcat运行异常可以用以下方法解决

解决方案一:

mv /dev/random /dev/random.bak   //将random改名
ln -s /dev/urandom /dev/random  //用urandom替换random

解决方案二:

yum -y install rng-tools
systemctl start rngd

测试静态页面:

cd  /usr/local/tomcat
echo "tomcat-test~~~~" > webapps/ROOT/test01.html

http://192.168.2.5:8080/test01.html 火狐访问测试

测试动态页面:

vim webapps/ROOT/test02.jsp
<html>
  <body>
    <center>
        Now time is: <%=new java.util.Date()%>
    </center>
    </body>
</html>

http://192.168.2.5:8080/test02.jsp 火狐访问测试,刷新可以看到时间变化


二,在tomcat创建虚拟主机

回顾 ,虚拟主机搭建方法

httpd

<virtualhost *:80>
Servername www.a.com
Documentroot  /var/www/html
</virtualhost>

Nginx

http {
   server {
       listen 80;
       server_name www.a.com;
       root html;
       index index.html;
    }
}

Tomcat创建虚拟主机

<Host name=域名 appBase=网站存放目录 >

</Host>

vim conf/server.xml   //打开配置文件在122行添加虚拟主机配置
<Host name="www.b.com" appBase="web_b" >
</Host>
[root@proxy tomcat]# mkdir -p web_b/ROOT    //之后创建b网站的目录
[root@proxy tomcat]# echo "tomcat-A~~~" > webapps/ROOT/index.html
[root@proxy tomcat]# echo "tomcat-B~~~" > web_b/ROOT/index.html
bin/shutdown.sh   //关闭tomcat
bin/startup.sh   //开启
[root@proxy tomcat]# tail -1 /etc/hosts    //查看域名解析
192.168.2.5 www.a.com www.b.com www.c.com
[root@proxy tomcat]# curl www.a.com:8080  //测试
tomcat-A~~~
[root@proxy tomcat]# curl www.b.com:8080
tomcat-B~~~

再次修改虚拟主机配置

<Host name="www.b.com" appBase="web_b"
unpackWARs="true" autoDeploy="true">     //添加unpackWARs自动解war包,和autoDeploy可以自动更新开发工程师编写的网站功能代码
</Host>

bin/shutdown.sh     //然后重启tomcat
bin/startup.sh
netstat -ntulp | grep java    //检查

测试自动解war包功能:

首先tomcat服务必须是开启状态

yum -y install java-1.8.0-openjdk-devel    //安装软件包
jar -cf b.war /var/log   //之后可以使用jar命令打war包
cp b.war web_b/  //将war包放入虚拟主机的网页目录
ls web_b/    //检查,可以看到已经自动解开

三,tomcat访问路径与页面位置

Context path 匹配用户输入的地址栏

docBase 可以定义网站页面位置

测试一: /usr/local/tomcat/web_b

<Host name="www.b.com" appBase="web_b"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="" />   //添加本行
</Host>

echo "web_b/index.html" > web_b/index.html     //创建素材,定义新路径
echo "web_b/ROOT/index.html" > web_b/ROOT/index.html  //默认页面路径
curl www.b.com:8080   //测试可以看到的是默认的页面路径
bin/shutdown.sh
bin/startup.sh
curl www.b.com:8080   //重启后测试可以看到新路径

测试二:

<Host name="www.b.com" appBase="web_b"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="abc" />    //修改成abc
</Host>

mkdir web_b/abc
echo "web_b/abc/index.html" > web_b/abc/index.html   //创建测试页面

重启tomcat

curl www.b.com:8080   //再次访问可以看到新路径的页面

测试三:

<Host name="www.b.com" appBase="web_b"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/abc" />   //当此处使用绝对路径时,可以更自由定义网页位置
</Host>

mkdir /abc
echo "/abc/index.html" > /abc/index.html

重启tomcat

curl www.b.com:8080   //访问测试,看到的是/abc/index.html的页面

测试四:

<Host name="www.b.com" appBase="web_b"
unpackWARs="true" autoDeploy="true">
<Context path="/test" docBase="/abc" />   //path后面添加内容可以匹配用户访问路径
</Host>

重启tomcat

[root@proxy tomcat]# curl www.b.com:8080/test/
/abc/index.html
[root@proxy tomcat]# curl www.b.com:8080
web_b/ROOT/index.html

测试五:

<Host name="www.b.com" appBase="web_b"
unpackWARs="true" autoDeploy="true">
<Context path="/test" docBase="abc" />    //将/abc改成abc
</Host>

重启tomcat

[root@proxy tomcat]# curl www.b.com:8080/test/
web_b/abc/index.html
[root@proxy tomcat]# curl www.b.com:8080
web_b/ROOT/index.html

下列需求如何实现?

访问www.b.com:8080 看到的是/usr/local/tomcat/test01/a/index.html中的内容

访问www.b.com:8080/abc/ 看到的是/var/www/html/index.html中的内容

<Host name="www.b.com" appBase="test01"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="a" />
<Context path="/abc" docBase="/var/www/html" />
</Host>

mkdir -p test01/a
echo "test01/a/index.html"  > test01/a/index.html

给新创建的虚拟主机添加日志功能

vim conf/server.xml   //修改配置文件,复制最后一页默认虚拟主机的日志配置

其中prefix是日志名称,suffix是日志后缀名

<Host name="www.b.com" appBase="test01"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="a" />
<Context path="/abc" docBase="/var/www/html" />
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="www-b-com" suffix=".log"
           pattern="%h %l %u %t "%r" %s %b" />

</Host>

配置好之后开启或者重启tomcat服务

curl  www.b.com:8080   //访问一次网站,可以产生日志记录
[root@proxy tomcat]# ls logs/    查看日志目录可以看到b网站的日志名称

四,使用maven上线网站

maven是一个软件项目管理工具

链接:https://pan.baidu.com/s/17JTUL57vwcc3ianlHCADSA

提取码:6666

KVM:在真机第二阶段/linux-soft/2/maven下

1, 将三个文件传入虚拟机root的家目录,原地释放

apache-maven-3.6.3-bin.tar.gz     //maven工具包
cms.tar.gz    //网站项目,代码已经都编写完毕
m2.tar.gz   //依赖程序,释放之后是隐藏目录.m2

2,检查tomcat,必须是正常启用状态

Killall java
cd ~/lnmp_soft
rm -rf /usr/local/tomcat
cp -r apache-tomcat-8.0.30 /usr/local/tomcat    //重新拷贝tomcat
mv  /dev/random  /dev/random.bak    //解决随机字符问题
ln -s /dev/urandom /dev/random   
/usr/local/tomcat/bin/startup.sh   //开启tomcat

3,配置maven

mv  apache-maven-3.6.3  /usr/local/maven
yum -y install java-1.8.0-openjdk
yum -y install java-devel
vim /usr/local/maven/conf/settings.xml    //在第159行添加以下内容

<mirror>
      <id>nexus-aliyun</id>
      <mirrorOf>*</mirrorOf>
      <name>Nexus aliyun</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

4,配置数据库与构建项目

yum -y install mariadb-server mariadb
systemctl restart mariadb
cd ~/CMS/     //到网站项目目录
cp src/main/resources/shishuocms.properties .   //拷贝数据库相关文件到CMS目录
mysql -uroot -p < sql/install.sql   //导入数据库关于网站的文件
mysqladmin password    //修改数据库密码为12345678
/usr/local/maven/bin/mvn clean package   //利用maven打包项目
rm -rf /usr/local/tomcat/webapps/ROOT   //删除默认页
cp target/shishuocms-2.0.1.war /usr/local/tomcat/webapps/ROOT.war     //拷贝

新项目网站到tomcat,然后会自动解war包产生ROOT目录

之后开启tomcat,使用http://www.a.com:8080访问可以看到师说页面则成功

如果tomcat恢复默认了,就访问192.168.2.5:8080

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容