tomcat 单实例 多实例

2018-06-21  本文已影响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]"的提示信息,并返回选择结果
上一篇 下一篇

猜你喜欢

热点阅读