zoukankan      html  css  js  c++  java
  • tomcat的基本应用

    1.JVM基本介绍

    JAVA编译型 ---> 编译
    C 编译型--->
    	linux		--->编译一次
    	windows     --->编译一次
    	macos
    	ubuntu
    	跨平台  移值型差
    	
    只需要将源代码进行一次编译   war,能够在多处运行。
    	jvm虚拟机
    	
    	windows  jvm    --->war
    	linux    jvm    --->war
    	mac      jvm    --->war
    	
    	jvm 如何安装?
    		jvm 需要  jre  java运行环境
    	
    	环境:
    		jre:   java运行环境  包含 jvm
    		jdk:   java开发环境  包含 jre
    		
    		只想运行java代码,只需要jre即可
    		既想要运行环境,开发环境   jdk
    

    2.Tomcat与Nginx区别

    tomcat
    			基于java开发一个web服务器软件, 和nginx类似.
    			tomcat能直接解析jsp代码,以及静态资源.
    			nginx + tomcat 
    

    3.Tomcat安装配置启动

    	[root@web01 ~]# yum install java -y
    

    二进制安装tomcat
    [root@web01 ~]# mkdir /soft && cd /soft
    [root@web01 soft]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.26/bin/apache-tomcat-9.0.26.tar.gz
    [root@web01 soft]# tar xf apache-tomcat-9.0.26.tar.gz 
    [root@web01 soft]# ln -s /soft/apache-tomcat-9.0.26 /soft/tomcat
    [root@web01 soft]# /soft/tomcat/bin/startup.sh
    [root@web01 soft]# netstat -lntp|grep java
    tcp6       0      0 :::8009            :::*        LISTEN      8500/java           
    tcp6       0      0 :::8080            :::*        LISTEN      8500/java           
    tcp6       0      0 127.0.0.1:8005     :::*        LISTEN      8500/java    
    

    二进制:

    	jdk使用二进制
    ​	tomcat使用二进制
    ​	[root@es-node1 ~]# mkdir /soft/
    ​	[root@es-node1 ~]# tar xf jdk-8u60-linux-x64.tar.gz -C /app/
    ​	[root@es-node1 ~]# ln -s /soft/jdk1.8.0_60 /soft/jdk
    ​	[root@es-node1 ~]# vim /etc/profile
    ​	#...最后面添加...
    ​	export JAVA_HOME=/app/jdk
    ​	export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
    ​	export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
    
    [root@es-node1 ~]# tar xf apache-tomcat-9.0.26.tar.gz -C /soft
    [root@es-node1 ~]# /soft/apache-tomcat-9.0.26/bin/startup.sh
    

    4.Tomcat配置文件详解

    	一个server表示一个tomcat实例
    	一个server中包含多个Connector连接器,Connector的主要功能是接受、响应用户请求。
    	service的作用是:将connector关联至engine(catalina引擎)
    	一个host就是一个站点,类似于nginx的多站点
    	context类似于nginx中location的概念
    
    <!--Tomcat默认站点-->
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
    
    ​    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
    ​           prefix="localhost_access_log" suffix=".txt"
    ​           pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    
      </Host>
        <!--tomcat虚拟主机-->
        <Host name="tomcat.old.com"  appBase="/code1"
                unpackWARs="true" autoDeploy="true">
    
    ​    <!--类似于nginx的location  path是访问的路径 ->映射 docBase是真实的路径-->
    ​    <Context docBase="/code1/admin" path="/test" reloadable="true"/>
    
    ​    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
    ​                    prefix="tomcat1_access_log" suffix=".txt"
    ​                    pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    ​    </Host>
    ​     <!--zrlog站点-->
    <Host name="zrlog.old.com"  appBase="/code/zrlog"
    ​      unpackWARs="true" autoDeploy="true">
    
      <Va0lve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
             prefix="zrlog_access_log" suffix=".txt"
             pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    </Host>
    
      <!--Tomcat默认站点-->
      <Host name="jpress.old.com"  appBase="/code/jpress"
            unpackWARs="true" autoDeploy="true">
    
    ​    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
    ​           prefix="localhost_access_log" suffix=".txt"
    ​           pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    
      </Host>
        </Engine>
    
      </Service>
    
    
    

    5.Tomcat配置虚拟主机 ---> 一台服务器运行多个站点

    	<!--tomcat虚拟主机-->
    ​	<Host name="tomcat1.oldxu.com"  appBase="/code1"
    ​		unpackWARs="true" autoDeploy="true">
    
    <!--类似于nginx的location  path是访问的路径 ->映射 docBase是真实的路径-->
    <Context docBase="/code1/admin" path="/test" reloadable="true"/>
    
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
    		prefix="tomcat1_access_log" suffix=".txt"
    		pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    </Host>
    
    无法启动:
    	1.替换配置文件:   pkill java  然后在启动
    	2.配置文件写错   
    	3.虚拟主机是添加,不要修改
    	4.context如果写了,一定要有对应的目录,不然整体就报错
    	/soft/tomcat/logs/catalina.out
    

    6.Tomcat部署博客项目zrlog

    域名: zrlog.oldxu.com:8080
    站点目录:  /code/zrlog      <--ROOT
    
    10.0.0.7  tomcat   端口 8080		10.0.0.51 mysql    端口 3306
    

    1.配置server.xml文件 ,新增在 engline

    [root@web01 ~]# vim /soft/tomcat/conf/server.xml
     <!--zrlog站点-->
    <Host name="zrlog.oldxu.com"  appBase="/code/zrlog"
          unpackWARs="true" autoDeploy="true">
    
      <Va0lve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
             prefix="zrlog_access_log" suffix=".txt"
             pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    </Host>
    
    2.创建站点目录,上传zrlog的war包
    [root@web01 ~]# mkdir /code/zrlog
    [root@web01 ~]# cd /code/zrlog/
    [root@web01 zrlog]# rz ROOT.war    <---这个是zrlog的war包,名称就叫ROOT
    
    3.重启Tomcat服务
    [root@web01 zrlog]# /soft/tomcat/bin/shutdown.sh && /soft/tomcat/bin/startup.sh && tail -f /soft/tomcat/logs/catalina.out
    
    4.配置域名劫持
    

    5.在172.16.1.51的数据库上,创建一个zrlog的库,配置授权访问用户

    	[root@db01 ~]# mysql -uroot -poldxu.com
    ​	MariaDB [(none)]> create database zrlog charset utf8;
    ​		<---此前配置过all用户,可以复用
    ​	MariaDB [(none)]> grant all privileges on *.* to 'all'@'%' identified by 'oldxu.com';
    
    ​	
    
    	jeesns  --社交
    ​	jpress  --博客		(群里-->新增Host -->新增站点目录--->jpress.war修改为ROOT.war)
    ​	zrlog   --博客
    
    ​	
    

    源码包-->jar包--war包的关系?

    	源码包  -->  由开发人员编写的
    	
    		maven
    	
    	jar     -->  源码包编译
    				无法独立运行, 需要被某个程序所依赖    mysql连接
    				可以独立运行, java -jar xx.jar 启动
    					https://gitee.com/chejiangyi/dingding-sonar
    
    	war		-->  源码包编译, 可以直接放在tomcat中进行部署  (这种类型居多)
    
    	源码-->maven编译-->jar或者war包
    	war包直接放入tomcat即可运行, war在运行过程中需要依赖 jar包
    	jar包 分为两种,   可独立运行(对外提供服务),    不可独立运行(被war依赖)
    

    1.配置conf/server.xml 增加一个Host

        <!--jpress站点-->
    ​      <Host name="jpress.oldxu.com"  appBase="/code/jpress"
    ​            unpackWARs="true" autoDeploy="true">
    
    ​    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
    ​           prefix="jpress_access_log" suffix=".txt"
    ​           pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>
    

    2.上传代码

    [root@web01 ~]# mkdir /code/jpress && cd /code/jpress
    [root@web01 jpress]# rz jpress.war
    [root@web01 jpress]# mv jpress.war ROOT.war
    

    3.重启Tomcat

    [root@web01 jpress]# /soft/tomcat/bin/shutdown.sh && /soft/tomcat/bin/startup.sh && tail -f /soft/tomcat/logs/catalina.out
    	
    

    7.Tomcat配置基础认证 ---> 了解

    如何开启 Server Status Host Manager页面

    1.配置conf/tomcat-users.xml


    2.如果访问还是403,是因为tomcat默认仅运行本地访问该管理页面,需要允许同网段主机访问
    	[root@web01 ~]# ll /soft/tomcat/webapps/manager/
    	[root@web01 ~]# ll /soft/tomcat/webapps/host-manager/
    	
    	[root@es-node1 tomcat]# vim 项目目录下/META-INF/context.xml
    	allow="127.d+.d+.d+|::1|0:0:0:0:0:0:0:1" />
    	#修改为
    	allow="127.d+.d+.d+|::1|0:0:0:0:0:0:0:1|10.0.0.d+" />
    

    3.启用zrlog的基础认证 ---> zrlog.oldxu.com/admin 了解 使用Nginx替代

    [root@es-node1 tomcat]# vim /code/zrlog/ROOT/WEB-INF/web.xml

    <web-app>
    ...
        <security-constraint>
            <web-resource-collection>
                <web-resource-name>zrlog</web-resource-name>
                <url-pattern>/admin/*</url-pattern>
            </web-resource-collection>
        
    
    ​    <auth-constraint>
    ​        <role-name>zrlog_role</role-name>
    ​    </auth-constraint>
    </security-constraint>
    
    <login-config>
        <auth-method>BASIC</auth-method>
        <realm-name>Default</realm-name>
    </login-config>
    
    ...
    </web-app>
    

    #配置用户名密码,关联对应的角色(多个role不要使用相同用户)

    [root@es-node1 tomcat]# vim /soft/tomcat/conf/tomcat-users.xml

    <role rolename="zrlog_role"/>
    <user username="tomcat" password="123456" roles="zrlog_role"/>
    

    #重启tomcat

    [root@es-node1 ~]# /soft/tomcat/bin/shutdown.sh && /soft/tomcat/bin/startup.sh
    

    8.部署多节点Tomcat-->mysql

    10.0.0.7   ---> 10.0.0.51
    
    ​	10.0.0.8   ---> 10.0.0.51
    
    1.安装jdk
    [root@web02 ~]# yum install java -y
    
    2.安装tomcat  部署代码  (scp)
    
    在web02上操作
    
    [root@web02 soft]# rm -rf /soft/tomcat/
    [root@web02 soft]# ln -s /soft/apache-tomcat-9.0.26 /soft/tomcat
    [root@web02 soft]# /soft/tomcat/bin/startup.sh
    

    3.修改域名解析


    8.部署多节点Tomcat-->NFS

    10.0.0.7   ---> 10.0.0.51
    10.0.0.8   ---> 10.0.0.51
    				10.0.0.31
    

    1.安装NFS

    [root@nfs ~]# groupadd -g 666 www
    [root@nfs ~]# useradd -u666 -g666 www
    [root@nfs ~]# yum install nfs-utils -y
    [root@nfs ~]# cat /etc/exports
    /data/zrlog 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
    [root@nfs ~]# mkdir /data/zrlog
    [root@nfs ~]# systemctl restart nfs
    

    2.找到图片资源 推送图片资源至NFS

    [root@web01 ~]# scp -rp /code/zrlog/ROOT/attached/* root@172.16.1.31:/data/zrlog/
    [root@nfs ~]# chown -R www.www /data/zrlog/			#重新授权
    

    3.多节点挂载

    mount -t nfs 172.16.1.31:/data/zrlog/ /code/zrlog/ROOT/attached/
    

    4.生成密码htpasswd -b -c /etc/nginx/auth_conf baozexu 123

    upstream old{
            server 172.16.1.7:8080;
            server 172.16.1.8:8080;
    }
            server {
            listen 80;
            server_name zrlog.old.com;
            location / {
            proxy_pass http://old;
            proxy_set_header Host $http_host;
            auth_basic "baozexu";
            auth_basic_user_file "/etc/nginx/auth_conf";
    
    }
    
    }
    
  • 相关阅读:
    如何从维护视图(Maintenace view)中取数据-[VIEW_GET_DATA]
    如何使用ref->*,field-symbols创建内表
    预制发票MIR7抬头行项目检查BADi-MRM_HEADER_CHECK
    如何跳转屏幕到MIGO-[MIGO_DIALOG]
    网络编程聊天室------客户端接收
    网络编程聊天室------客户端发送
    网络编程聊天室------客户端
    网络编程聊天室---------服务器线程类
    网络编程聊天室----服务器端
    小明滚出---响应对象HttpServletResponse和请求对象HttpServletRequest实例
  • 原文地址:https://www.cnblogs.com/baozexu/p/11601387.html
Copyright © 2011-2022 走看看