zoukankan      html  css  js  c++  java
  • JAVA和Tomcat运维整理

    安装JAVA和Tomcat
    apache-tomcat-8.5.37.tar.gz  jdk-8u191-linux-x64.rpm

    [root@localhost ~]# ll /usr/java/
    total 0
    lrwxrwxrwx. 1 root root 16 Jan 14 16:41 default -> /usr/java/latest
    drwxr-xr-x. 8 root root 258 Jan 14 16:41 jdk1.8.0_191-amd64
    lrwxrwxrwx. 1 root root 28 Jan 14 16:41 latest -> /usr/java/jdk1.8.0_191-amd64
    [root@localhost ~]# ll /usr/java/latest/
    total 25976
    drwxr-xr-x. 2 root root 4096 Jan 14 16:41 bin
    -rw-r--r--. 1 root root 3244 Oct 6 20:52 COPYRIGHT
    drwxr-xr-x. 3 root root 132 Jan 14 16:41 include
    -rw-r--r--. 1 root root 5207154 Sep 12 15:48 javafx-src.zip
    drwxr-xr-x. 5 root root 185 Jan 14 16:41 jre
    drwxr-xr-x. 5 root root 245 Jan 14 16:41 lib
    -rw-r--r--. 1 root root 40 Oct 6 20:52 LICENSE
    drwxr-xr-x. 4 root root 47 Jan 14 16:41 man
    -rw-r--r--. 1 root root 159 Oct 6 20:52 README.html
    -rw-r--r--. 1 root root 424 Oct 6 20:52 release
    -rw-r--r--. 1 root root 21101479 Oct 6 20:52 src.zip
    -rw-r--r--. 1 root root 108062 Sep 12 15:48 THIRDPARTYLICENSEREADME-JAVAFX.txt
    -rw-r--r--. 1 root root 155003 Oct 6 20:52 THIRDPARTYLICENSEREADME.txt

    [root@localhost profile.d]# ll /usr/local/tomcat
    total 124
    drwxr-x---. 2 root root 4096 Jan 15 10:04 bin
    -rw-r-----. 1 root root 19539 Dec 12 20:23 BUILDING.txt
    drwx------. 2 root root 238 Dec 12 20:23 conf
    -rw-r-----. 1 root root 6090 Dec 12 20:23 CONTRIBUTING.md
    drwxr-x---. 2 root root 4096 Jan 14 16:50 lib
    -rw-r-----. 1 root root 57092 Dec 12 20:23 LICENSE
    drwxr-x---. 2 root root 6 Dec 12 20:07 logs
    -rw-r-----. 1 root root 1726 Dec 12 20:23 NOTICE
    -rw-r-----. 1 root root 3255 Dec 12 20:23 README.md
    -rw-r-----. 1 root root 7142 Dec 12 20:23 RELEASE-NOTES
    -rw-r-----. 1 root root 16262 Dec 12 20:23 RUNNING.txt
    drwxr-x---. 2 root root 30 Jan 14 16:50 temp
    drwxr-x---. 7 root root 81 Dec 12 20:07 webapps
    drwxr-x---. 2 root root 6 Dec 12 20:07 work
    添加环境变量:
    vim /etc/profile.d/java.sh
    export JAVA_HOME=/usr/java/latest
    export PATH=$JAVA_HOME/bin:$PATH
    . /etc/profile.d/java.sh #应用

    vim /etc/profile.d/tomcat.sh
    export CATALINA_HOME=/usr/local/tomcat
    export PATH=$CATALINA_HOME/bin:$PATH
    . /etc/profile.d/tomcat.sh
    Java
    部署:
    JVM:
    运行时区域:
    堆:对象

    Tomcat部署方式两种:
    Centos6:
    Oracle JDK,Tomcat
    yum repo:
    jdk
    tomcat6
    tomcat
    Centos7:
    OpenJDK 7
    tomcat 7
    JDK 1.6 1.7 1.8
    Tmocat 一般是普通用户启动,端口号大于1024,如果是80端口,就必须要root用户
    查看版本:
    [root@localhost profile.d]# catalina.sh version
    Using CATALINA_BASE: /usr/local/tomcat
    Using CATALINA_HOME: /usr/local/tomcat
    Using CATALINA_TMPDIR: /usr/local/tomcat/temp
    Using JRE_HOME: /usr/java/latest
    Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
    Server version: Apache Tomcat/8.5.37
    Server built: Dec 12 2018 12:07:02 UTC
    Server number: 8.5.37.0
    OS Name: Linux
    OS Version: 3.10.0-862.el7.x86_64
    Architecture: amd64
    JVM Version: 1.8.0_191-b12
    JVM Vendor: Oracle Corporation

    开始启动:
    [root@localhost profile.d]# catalina.sh start
    Using CATALINA_BASE: /usr/local/tomcat
    Using CATALINA_HOME: /usr/local/tomcat
    Using CATALINA_TMPDIR: /usr/local/tomcat/temp
    Using JRE_HOME: /usr/java/latest
    Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

    ss -tnl查看8080端口是否启动

    server Status 服务器状态
    Manager App 管理器组件
    Host Manager 主机或者虚拟主机管理组件
    Java WebAPP 组织结构:
        有特定的组织形式、层次型号的目录机构,注意包含了servlet代码文件、jsp页面文件、类文件、部署描述文件等;
        /usr/local/tomcat/webapps/app1/
            /: webapp 的根目录
            WEB-INF/:当前webapp的私有资源目录,通常存放webapp自用的web.xml
            META-INF/:当前webapp的私有资源目录,通常存放当前webapp自用的context.xml
            classes/:次webapp的私有类
            lib/:此webapp的私有类,被打包为jar格式的类
            index.jsp:webapp的主页

        webapp的归档格式:
            .war:webapp
            .jar:EJB的类
            .rar:资源适配器
            .ear:企业级应用程序

        手动添加一个测试应用程序:
            1.创建webapp特有的目录结构
            2.提供webapp各文件

    [root@localhost webapps]# pwd
    /usr/local/tomcat/webapps
    [root@localhost webapps]# ls
    docs examples host-manager manager ROOT
    [root@localhost webapps]# mkdir myapp/{lib,classes,WEB-INF,META-INF} -pv
    mkdir: created directory ‘myapp’
    mkdir: created directory ‘myapp/lib’
    mkdir: created directory ‘myapp/classes’
    mkdir: created directory ‘myapp/WEB-INF’
    mkdir: created directory ‘myapp/META-INF’
    [root@localhost webapps]# tree myapp/
    myapp/
    ├── classes
    ├── lib
    ├── META-INF
    └── WEB-INF

    4 directories, 0 files

    注意:/usr/local/tomcat/conf/
    可以复制context.xml到web-inf目录下
    和web.xml到MWTA-INF
    写一个测试项目:
    [root@localhost webapps]# vim myapp/index.jsp
    <%@ page language="java" %>
    <%@ page import="java.util.*" %>
    <html>
    <head><title>test!</title></head>
    <body>
    <% out.println("hello,word"); %>
    </body>

    </html>
    打开浏览器就可以访问:
    http://192.168.68.10:8080/myapp/

    检查是否生成了class文件
    [root@localhost tomcat]# ls
    bin conf lib logs README.md RUNNING.txt webapps
    BUILDING.txt CONTRIBUTING.md LICENSE NOTICE RELEASE-NOTES temp work
    [root@localhost tomcat]# tree work/
    work/
    └── Catalina
    └── localhost
    ├── docs
    ├── examples
    ├── host-manager
    ├── manager
    ├── myapp
    │   └── org
    │   └── apache
    │   └── jsp
    │   ├── index_jsp.class
    │   └── index_jsp.java
    └── ROOT
    └── org
    └── apache
    └── jsp
    ├── index_jsp.class
    └── index_jsp.java

    14 directories, 4 files

    一般情况下,是公司的域名倒过来
    myapp
    │   └── org
    │   └── apache
    │   └── jsp
    │   ├── index_jsp.class
    │   └── index_jsp.java
    通过修改ROOT默认首页转到自己的网站路径

    部署(deployment)webapp相关的操作
        deploy:部署,将webapp的源文件旋转于目标目录,配置tomcat服务器能够基于context.xml文件中定义的路径来访问此webapp;
        将其特有类通过class loader装载至tomcat
            有两种方式:
                自动部署:auto deploy
                手动部署:
                    1.冷部署:把webapp复制到指定的位置,而后才启动tomcat
                    2.热部署:在不停止tomcat的前提下进行的部分
                        部署工具:manager、ant脚本,tcd(tomcat client deployer)等
        undeploy:反部署,停止webapp,并从tomcat示例拆除其部分文件和部署名
        stop:停止,不在向用户提供服务
        start:启动处于停止的项目
        redeploy:重新部署

    开启tomcat页面的登录

    第一个地方:
    [root@localhost conf]# vim tomcat-users.xml
    增加:
    <role rolename="manager-gui"/>
    <role rolename="admin-gui"/>
    <role rolename="manager-script"/>
    <user username="admin" password="admin" roles="admin-gui,manager-gui,manager-script"/>


    第二个地方:
    vim /usr/local/tomcat/webapps/manager/META-INF/context.xml
    <Context antiResourceLocking="false" privileged="true" >
    <!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
    allow="127.d+.d+.d+|::1|0:0:0:0:0:0:0:1" />
    <Manager sessionAttributeValueClassNameFilter="java.lang.(?:Boolean|Integer|Long|Number|String)|org.apache.catalina.filters.CsrfPreventionFilter$LruCache(?:$1)?|java.util.(?:Linked)?HashMap"/> -->
    </Context>
    vim /usr/local/tomcat/webapps/host-manager/META-INF/context.xml
    <Context antiResourceLocking="false" privileged="true" >
    <!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
    allow="127.d+.d+.d+|::1|0:0:0:0:0:0:0:1" />
    <Manager sessionAttributeValueClassNameFilter="java.lang.(?:Boolean|Integer|Long|Number|String)|org.apache.catalina.filters.CsrfPreventionFilter$LruCache(?:$1)?|java.util.(?:Linked)?HashMap"/> -->
    </Context>
    [root@localhost conf]# catalina.sh stop
    [root@localhost conf]# catalina.sh start
    然后就可以tomcat,tomcat登录了
    Tomcat新建虚拟主机
    [root@localhost tomcat]# vim conf/server.xml
    添加配置:
    <Host name="a.com" appBase="/data/webapps" unpackWARs="true" autoDeploy="false">

    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/data/logs"
    prefix="a-com_access_log" suffix=".txt"
    pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    </Host>
    创建目录:
    [root@localhost tomcat]# mkdir -pv /data/{webapps,logs}
    mkdir: created directory ‘/data’
    mkdir: created directory ‘/data/webapps’
    mkdir: created directory ‘/data/logs’

    放入网站源码:
    cp -r /usr/local/tomcat/webapps/myapp/* /data/webapps/
    catalina.sh stop
    catalina.sh start
    curl a.com:8080 报404
    查看日志
    [root@localhost conf]# cd /data
    [root@localhost data]# ls
    logs webapps
    [root@localhost data]# cd logs/
    [root@localhost logs]# ls
    a-com_access_log.2019-01-15.txt
    [root@localhost logs]# cat a-com_access_log.2019-01-15.txt
    127.0.0.1 - - [15/Jan/2019:16:21:48 +0800] "GET / HTTP/1.1" 404 -
    127.0.0.1 - - [15/Jan/2019:16:21:50 +0800] "GET / HTTP/1.1" 404 -
    原因是不支持重新装载

    再次更改host配置:
    <Host name="a.com" appBase="/data/webapps" unpackWARs="true" autoDeploy="false">
    <Context path="" docBase="/data/webapps" reloadable="true" />
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/data/logs"
    prefix="a-com_access_log" suffix=".txt"
    pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    </Host>
    重启catalina.sh
    请求成功:

    ---------------------
    作者:JESSE_JAVA
    来源:CSDN
    原文:https://blog.csdn.net/weixin_36171533/article/details/86496038
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    Android JNI 使用的数据结构JNINativeMethod详解 .
    datatable的部分问题处理(动态定义列头,给某行添加事件,初始显示空数据)
    关于boostrap的modal隐藏问题(前端框架)
    三丰云服务器的基本使用(端口)
    Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)
    云服务器内,nginx安装部署,Xshell,Xftp安装
    免费云服务器的申请(三丰云)
    vue的组件化运用(数据在两个组件互传,小问题总结)
    vue的表单编辑删除,保存取消功能
    datatable动态列处理,重绘表格(敲黑板,划重点!!!我肝了一天半才彻底弄懂这个东西,TAT)
  • 原文地址:https://www.cnblogs.com/zhoading/p/10983065.html
Copyright © 2011-2022 走看看