美文网首页
tomcat 单实例 多实例

tomcat 单实例 多实例

作者: 心疼你萌萌哒 | 来源:发表于2018-06-21 19:16 被阅读0次
    1.有没有用过web容器
    2.你用过什么web容器
    3.你上家公司有没有用过tomcat
    4.什么是web容器
    5.nginx apache tomcat的区别
    都是web服务器 nginx(并发50000) apache(2000)解析动态页面 tomcat(单实例175并发)
    解析jsp java 动态页面
    =========================================================================
    Tomcat,Resin,JBOSS,WebSphere,Weblogic
    Tomcat官网    
    http://tomcat.apache.org/
    jdk官网
    jdk的包有两种
    1..gz .bz2 .zip 直接解压 放到安装位置 就能用
    2. .bin 直接执行 会解压出一个目录 放到安装位置 就能用
    一般放到/usr/local/下面 改环境变量
    http://www.oracle.com/technetwork/java/javase/downloads/index.html
    ========================================================================
    Tomcat
    JAVA容器,WEB容器,WEB中间件
    方案一:     Tomcat
    方案二:  Nginx+Tomcat                                                      
    方案三:  
                    Nginx 
                        |
        +-----------------------------+
        |               |                    |      
    Tomcat1   Tomcat2    Tomcat3
    
    建议使用Nginx和Tomcat配合,Nginx处理静态,Tomcat处理动态程序
    方案三中后端Tomcat可以运行在单独的主机,也可以是同一台主机上的多实例                   
    
    一、Tomcat Http Server
    
    1. 部署JAVA环境
    tar xf jdk-8u91-linux-x64.tar.gz -C /usr/local
    cd /usr/local
    mv jdk-8u91-linux-x64 java或者
    ln -s /usr/local/jdk1.8.0_91 /usr/local/java
    
    方式1.vim /etc/bashrc or /etc/profile or /root/.bashrc
    JAVA_HOME=/usr/local/java
    PATH=$JAVA_HOME/bin:$PATH
    export JAVA_HOME PATH
    方式2.脚本方式
    vim /etc/profile.d/java.sh
    JAVA_HOME=/usr/local/java
    PATH=$JAVA_HOME/bin:$PATH
    export JAVA_HOME PATH
    生效配置
    source /etc/profile
    env |grep JAVA
    JAVA_HOME=/usr/local/java
     java -version
    java version "1.8.0_91"
    Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
    Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
    
    2. 安装Tomcat:
    tar xf apache-tomcat-7.0.34.tar.gz -C /usr/local/
    mv apache-tomcat-7.0.34 tomcat或者
    ln -s /usr/local/jdk1.8.0_91 /usr/local/java
    ln -s /usr/local/apache-tomcat-7.0.34 /usr/local/tomcat
    
    定义Tomcat所需环境变量:
    vim /etc/profile            //定义Tomcat环境变量
    CATALINA_HOME=/usr/local/tomcat     //Tomcat安装目录
    export CATALINA_HOME
    生效配置
    source /etc/profile
    
    启动Tomcat
    # /usr/local/tomcat/bin/startup.sh      //启动tomcat
    Using CATALINA_BASE:   /usr/local/tomcat
    Using CATALINA_HOME:   /usr/local/tomcat
    Using CATALINA_TMPDIR: /usr/local/tomcat/temp
    Using JRE_HOME:        /usr/java/jdk1.7.0_11
    Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
    
    # netstat -tnlp |grep java
    tcp        0      0 ::ffff:127.0.0.1:8005       :::*          LISTEN      6191/java           
    tcp        0      0 :::8009                     :::*          LISTEN      6191/java           
    tcp        0      0 :::8080                     :::*          LISTEN      6191/java  
          
    # /usr/local/tomcat/bin/shutdown.sh //关闭tomcat
    
    关于tomcat端口:
    Tomcat服务器通过Connector连接器组件与客户程序建立连接,Connector组件负责接收客户的请求,
    以及把Tomcat服务器的响应结果发送给客户。默认情况下,Tomcat在server.xml中配置了两种连接器:
      第一个连接器监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat
    服务器的Web应用时,使用的就是这个连接器。  
      第二个连接器监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服
    务器(apache)集成时,就需要用到这个连接器。反向代理到这个端口
    
    8005是tomcat本身的端口
    
    3. 测试tomcat是否安装成功
    http://192.168.44.48:8080/ (浏览器中测试)
    [root@localhost tomcat]# tree -L 1
    .
    ├── bin
    ├── conf
    ├── lib
    ├── LICENSE
    ├── logs
    ├── NOTICE
    ├── RELEASE-NOTES
    ├── RUNNING.txt
    ├── temp
    ├── webapps 存放网站代码
    └── work
    
    二、安装MySQL
    yum -y install mariadb mariadb-server
    systemctl restart mariadb
    mysqladmin -uroot password 'root'
    三、部署jspgou
    
    1.创建数据库:
    在mysql数据库中创建jspgou数据库(推荐使用此数据库名,否则参照第三条修改对应的数据库链接信息),
    字符集为utf-8,
    mysql -uroot -proot
    格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"; 
    grant all privileges on jspgou.* to "alice"@"%" identified by 'root';
    flush privileges; //刷新系统权限表
    create database jspgou CHARACTER SET = utf8;
    
    2.更改数据库链接:
    yum -y install unzip
    unzip jspgouV6-ROOT.zip
    vim ROOT\WEB-INF\config\jdbc.properties
    程序包内ROOT\WEB-INF\config\jdbc.properties文件第20行左右
            jdbc.url=jdbc:mysql://127.0.0.1:3306 characterEncoding=UTF-8
            jdbc.username=root   #在生产环境中必须用普通账户
            jdbc.password=root   #给一个普通用户的密码
    
    3.导入数据:
    将压缩包内DB文件中jspgou.sql文件导入至创建好的jspgou数据库中,如导入中出现执行sql语句过长问题,
    请修改mysql配置文件my.cnf中max_allowed_packet参数为64m,默认为1m(db 解压后出现在当前目录)
        导入数据库时如果报错:把所有datetime类型的字段默认值改成CURRENT_TIMESTAMP
        注意:如果用Mariadb数据库不会出现如上错误,可以直接导入
    [root@tomcat db]mysql -uroot -proot -D jspgou < jspgou.sql
    4.部署网站:
    将程序解压后的ROOT文件夹拷贝到tomcat安装目录下的webapps文件夹下
     \cp -r ROOT /usr/local/tomcat/webapps
    # ls /usr/local/tomcat/webapps/                 //默认网站的基目录base
    docs  examples  host-manager  manager  ROOT
    # ls /usr/local/tomcat/webapps/ROOT         //默认网站的主目录
    启动tomcat
    /usr/local/tomcat/bin/startup.sh 
    输入以下地址,如能正常显示,即表示部署成功
    前台:
    http://192.168.44.48:8080/
    系统管理后台登录:http://192.168.44.48:8080/jeeadmin/jspgou/index.do
    用户名:admin
    密  码:123456
    
    +++++++++++++++++++++tomcat多实例++++++++++++++++++++++++++++++++++++++++++
    
    Tomcat 一机多实例
    多实例运行不同的应用(类似虚拟主机)
    多实例运行相同的应用(实现负载均衡,支持高并发处理,session问题)
    
    tomcat单机多实例配置
    CATALINA_BASE:
    instance1: /usr/local/tomcat/instance1/{conf,logs,temp,work}       8081     8091
    instance2: /usr/local/tomcat/instance2/{conf,logs,temp,work}       8082     8092
    instance3: /usr/local/tomcat/instance3/{conf,logs,temp,work}       8083     8093
    
    1. 以单实例为基础
    [root@www ~]# /usr/local/tomcat/bin/shutdown.sh
    
    2. 配置多实例目录
    分别创建目录instance1 instance2 instance3,拷贝原来的conf,log,temp,work到3个目录下
    cd /usr/local/tomcat
    拷贝原来单实例的webapps到/下
    cp -aR  /usr/local/tomcat/webapps  /
    mkdir -R {instance1,instance2,instance3}
    cp -aR {conf,logs,temp,work} instance1
    cp -aR {conf,logs,temp,work} instance2
    cp -aR {conf,logs,temp,work} instance3
    [root@www ~]# tree -d -L 2 /usr/local/tomcat/
    /usr/local/tomcat/
    ├── bin
    ├── instance1
    │   ├── conf
    │   ├── logs
    │   ├── temp
    │   └── work
    ├── instance2
    │   ├── conf
    │   ├── logs
    │   ├── temp
    │   └── work
    ├── instance3
    │   ├── conf
    │   ├── logs
    │   ├── temp
    │   └── work
    └── lib
    
    3. 配置实例server.xml
    分别编辑instance{1'2'3}/conf/server.xml
    [root@www ~]# vim /usr/local/tomcat/instance1/conf/server.xml
    

    修改8005 为8091,8092,8093

    1.png

    修改8080 为8081,8082,8083


    2.png

    注释8009


    3.png
    定义网站在/webapps
    4.png
    4.脚本内容 (编写一样的脚本instance1/ins1.sh、instance2/ins2.sh、instance3/ins3.sh 没有权限的话要给权限)
    注意环境变量的问题《《《《《
    vim /usr/local/tomcat/instance2/ins2.sh
    #!/bin/bash
    #instance2
    . /etc/init.d/functions
    export CATALINA_BASE="/usr/local/tomcat/instance2"
    case "$1" in
    start)
        $CATALINA_HOME/bin/startup.sh
        ;;
    stop)
        $CATALINA_HOME/bin/shutdown.sh
        ;;
    restart)
        $CATALINA_HOME/bin/shutdown.sh
        sleep 5
        $CATALINA_HOME/bin/startup.sh
        ;;
    esac
    export JAVA_OPTS='-Xms64m -Xmx128m'
    
    /etc/bashrc的环境如下:
    JAVA_HOME=/usr/local/java
    PATH=$JAVA_HOME/bin:$PATH
    export JAVA_HOME PATH
    CATALINA_HOME=/usr/local/tomcat
    export CATALINA_HOME
    5. 启动测试
    [root@www ~]# /usr/local/tomcat/instance1/ins1.sh start
    [root@www ~]# /usr/local/tomcat/instance2/ins2.sh start
    [root@www ~]# /usr/local/tomcat/instance3/ins3.sh start
    
    [root@localhost tomcat]# ss -tnlp |grep :80 |column -t
    LISTEN  0  100  :::8081                :::*  users:(("java",pid=3760,fd=48))
    LISTEN  0  100  :::8082                :::*  users:(("java",pid=4659,fd=48))
    LISTEN  0  100  :::8083                :::*  users:(("java",pid=4801,fd=48))
    LISTEN  0  1    ::ffff:127.0.0.1:8091  :::*  users:(("java",pid=3760,fd=58))
    LISTEN  0  1    ::ffff:127.0.0.1:8092  :::*  users:(("java",pid=4659,fd=58))
    LISTEN  0  1    ::ffff:127.0.0.1:8093  :::*  users:(("java",pid=4801,fd=58))
    6.测试(浏览器)
    192.168.44.48:8081
    192.168.44.48:8082
    192.168.44.48:8083
    
    ================Shell公共函数:/etc/init.d/functions详解  ==========
    在学习Shell的时候看到很多脚本都会有. /etc/init.d/functions 这一句,在网上查询了此函数的作用,故收藏在博客中
    
    functions这个脚本是给/etc/init.d里边的文件使用的。提供了一些基础的功能,看看里边究竟有些什么。首先会设置umask,path,还有语言环境,然后会设置success,failure,warning,normal几种情况下的字体颜色。下面再看看提供的重要方法:
    checkpid:检查是否已存在pid,如果有一个存在,返回0(通过查看/proc目录)
    daemon:启动某个服务。/etc/init.d目录部分脚本的start使用到这个
    killproc:杀死某个进程。/etc/init.d目录部分脚本的stop使用到这个
    pidfileofproc:寻找某个进程的pid
    pidofproc:类似上面的,只是还查找了pidof命令
    status:返回一个服务的状态
    echo_success,echo_failure,echo_passed,echo_warning分别输出各类信息
    success,failure,passed,warning分别记录日志并调用相应的方法
    action:打印某个信息并执行给定的命令,它会根据命令执行的结果来调用 success,failure方法
    strstr:判断$1是否含有$2
    confirm:显示 "Start service $1 (Y)es/(N)o/(C)ontinue? [Y]"的提示信息,并返回选择结果
    

    相关文章

      网友评论

          本文标题:tomcat 单实例 多实例

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