美文网首页Linux
Tomcat服务器 、 Tomcat应用案例、Maven应用案例

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

作者: 秋天丢了李姑娘 | 来源:发表于2021-06-17 21:03 被阅读0次

    链接

    一,使用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

    相关文章

      网友评论

        本文标题:Tomcat服务器 、 Tomcat应用案例、Maven应用案例

        本文链接:https://www.haomeiwen.com/subject/erqhyltx.html