Tomcat 简介

Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。

Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。

Tomcat和Nginx、Apache(httpd)、lighttpd等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Nginx/Apache服务器。

目前Tomcat最新版本为9.0。Java容器还有resin、weblogic等。

Tomcat官网: http://tomcat.apache.org

JDK描述

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

JDK包含了一批用于Java开发的组件,其中包括:

javac:编译器,将后缀名为.java的源代码编译成后缀名为“.class”的字节码
java:运行工具,运行.class的字节码
jar:打包工具,将相关的类文件打包成一个文件
javadoc:文档生成器,从源码注释中提取文档,注释需匹配规范
jdb debugger:调试工具
jps:显示当前java程序运行的进程状态
javap:反编译程序
appletviewer:运行和调试applet程序的工具,不需要使用浏览器
javah:从Java类生成C头文件和C源文件。这些文件提供了连接胶合,使Java和C代码可进行交互。
javaws:运行JNLP程序
extcheck:一个检测jar包冲突的工具
apt:注释处理工具
jhat:java堆分析工具
jstack:栈跟踪程序
jstat:JVM检测统计工具
jstatd:jstat守护进程
jinfo:获取正在运行或崩溃的java程序配置信息
jmap:获取java进程内存映射信息
idlj:IDL-to-Java编译器。将IDL语言转化为java文件
policytool:一个GUI的策略文件创建和管理工具
jrunscript:命令行脚本运行

JDK中还包括完整的JRE(Java Runtime Environment),Java运行环境,也被称为private runtime。包括了用于产品环境的各种库类,如基础类库rt.jar,以及给开发人员使用的补充库,如国际化与本地化的类库、IDL库等等。

安装Tomcat & JDK

安装时候选择tomcat软件版本要与程序开发使用的版本一致。jdk版本要进行与tomcat保持一致。

系统环境说明

[root@web03 ~]# cat /etc/redhat-release
CentOS Linux release 7.4. (Core)
[root@web03 ~]# uname -a
Linux web03 3.10.-.el7.x86_64 # SMP Tue Aug :: UTC x86_64 x86_64 x86_64 GNU/Linux
[root@web03 ~]# getenforce
Disabled
[root@web03 ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld()

安装JDK

tar xf jdk-8u60-linux-x64.tar.gz -C /application/
ln -s /application/jdk1.8.0_60 /application/jdk # 设置环境变量
cat >>/etc/profile<<'EOF'
export JAVA_HOME=/application/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
EOF  

测试jdk是否安装成功↓

[root@web03 ~]# java -version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

安装Tomcat

tar xf apache-tomcat-8.0.27.tar.gz -C /application/
ln -s /application/apache-tomcat-8.0.27 /application/tomcat
# 设置环境变量
echo 'export TOMCAT_HOME=/application/tomcat'>>/etc/profile
source /etc/profile
# 注意授权,统一权限
chown -R root.root /application/jdk/ /application/tomcat/

检查tomcat是否安装成功↓

[root@web03 ~]# /application/tomcat/bin/version.sh
Using CATALINA_BASE: /application/tomcat
Using CATALINA_HOME: /application/tomcat
Using CATALINA_TMPDIR: /application/tomcat/temp
Using JRE_HOME: /application/jdk
Using CLASSPATH: /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar
Server version: Apache Tomcat/8.0.27
Server built: Sep 28 2015 08:17:25 UTC
Server number: 8.0.27.0
OS Name: Linux
OS Version: 3.10.0-693.el7.x86_64
Architecture: amd64
JVM Version: 1.8.0_60-b27
JVM Vendor: Oracle Corporation

Tomcat的管理

#  启动程序/application/tomcat/bin/startup.sh
# 关闭程序/application/tomcat/bin/shutdown.sh

检查tomcat是否启动正常

[root@web03 ~]# netstat -lntup  |grep java
tcp6 0 0 :::8080 :::* LISTEN 30560/java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 30560/java
tcp6 0 0 :::8009 :::* LISTEN 30560/java

启动完成浏览器进行访问

10.0.0.xx:8080

Tomcat多实例配置

多虚拟主机:nginx 多个Server标签(域名,ip,端口) 进程数量固定 master+worker

多实例(多进程):同一个程序启动多次,分为两种情况:

    第一种:一台机器跑多个站点;

    第二种:一个机器跑一个站点多个实例,配合负载均衡

复制程序文件

cd /application/tools/
tar xf apache-tomcat-8.0..tar.gz
cp -a apache-tomcat-8.0. tomcat01
cp -a apache-tomcat-8.0. tomcat02

修改端口,以启动多实例。多实例之间端口不能一致

sed -i 's#8005#8011#;s#8080#8081#' tomcat8_1/conf/server.xml
sed -i 's#8005#8012#;s#8080#8082#' tomcat8_2/conf/server.xml

将配置好的tomcat程序打包,以备之后使用

tar zcf muti_tomcat8.tar.gz ./tomcat01 ./tomcat02

启动tomcat多实例  

/application/tomcat01/bin/startup.sh
/application/tomcat02/bin/startup.sh

检查端口是否启动

[root@web03 tomcat8_1]# netstat -lntup |grep java
tcp6 0 0 127.0.0.1:8011 :::* LISTEN 31906/java
tcp6 0 0 127.0.0.1:8012 :::* LISTEN 31932/java
tcp6 0 0 :::8080 :::* LISTEN 31812/java
tcp6 0 0 :::8081 :::* LISTEN 31906/java
tcp6 0 0 :::8082 :::* LISTEN 31932/java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 31812/java
tcp6 0 0 :::8009 :::* LISTEN 31812/java

将每个实例的网页进行区分

echo 8081 >>/application/tomcat01/webapps/ROOT/index.jsp
echo 8082 >>/application/tomcat02/webapps/ROOT/index.jsp

在浏览器访问,进行测试

tomcat -> 简介&部署的更多相关文章

  1. 01 . Tomcat简介及部署

    Tomcat简介 Tomcat背景 tomcat就是常用的的中间件之一,tomcat本身是一个容器,专门用来运行java程序,java语言开发的网页.jsp就应该运行于tomcat中.而tomcat本 ...

  2. Tomcat简介、安装部署、上线网站

    资源池 本章资源:点击这里 提取码:upbf tomcat官网:https://tomcat.apache.org/ jpress博客系统安装包下载地址(不是官网):https://gitee.com ...

  3. tomcat简介及原理解说

    Tomcat简介 作者:杨晓(http://blog.sina.com.cn/u/1237288325) 目录: ----Tomcat背景 ----Tomcat目录 ----Tomcat类加载 --- ...

  4. tomcat简介与配置

    tomcat简介 tomcat就是常用的的中间件之一,tomcat本身是一个容器,专门用来运行java程序,java语言开发的网页.jsp就应该运行于tomcat中.而tomcat本身的运行也依赖于j ...

  5. 一个Tomcat下部署多个项目异常:org.springframework.jmx.export.UnableToRegisterMBeanException: Unable to register MBean 的解决方法

    内容简介 在测试服务器上Tomcat下部署两个Spring boot项目,总是一个能启动成功,另一个启动不成功.这两个war包单独部署均能正常启动. 查看日志:启动时报出 org.springfram ...

  6. IDEA/JRebel实现内部/外部/远程Tomcat热部署Spring Boot

    1 概述 所谓热部署,对于Java应用程序来说,就是在运行时更新Java类文件.IDEA可以使用自带的Spring Boot热部署的方式进行本地/远程热部署,或者使用JRebel进行本地/远程热部署, ...

  7. Tomcat服务部署及优化

    Tomcat 服务部署及优化 1.Tomcat简介 2.Tomcat 服务安装及部署 3.Tomcat虚拟主机配置 4.Tomcat 优化 1.Tomcat简介: 概述: Tomcat是Java语言开 ...

  8. JFinal 项目 在tomcat下部署

    原文:http://my.oschina.net/jfinal/blog/353062 首先明确一下 JFinal 项目是标准的 java web 项目,其部署方式与普通 java web 项目没有任 ...

  9. Intellij IDEA 创建Web项目并在Tomcat中部署运行(不使用maven)【转载】

    原文链接:http://www.thinksaas.cn/topics/0/350/350000.html 一.创建Web项目 1.File -> New Module,进入创建项目窗口 2.选 ...

随机推荐

  1. 分析code

    1 using System; //跟系统说明一下可能会用到这个dll里面的东西 using System.Collections.Generic; //引用集合类命名空间 using System. ...

  2. windows 服务实现定时任务调度(Quartz.Net)

    我们通常在一些情况下需要软件具有一个自动执行某些任务的功能,但是又不希望直接启动软件,或者每次都要手动的来启动软件,这时我们可可以考虑到windows服务了. 首先创建一个windows服务项目(详细 ...

  3. 3D舞台实现

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. JS基础(三)语句

    一.判断语句(PS:一般情况下判断条件最终应该是一个布尔值.) 1.if语句 1)基本格式 if(判断条件){ 如果判断条件成立则执行的语句 }else{ 如果判断条件不成立则执行的语句 } 2)扩展 ...

  5. 格式化输出Json对象

    1.调用方式: alert(JsonUti.convertToString(jsonObj)); //jsonObj为json对象. 2.格式化输出Json对象方法定义: var JsonUti = ...

  6. Python进阶-配置文件

    一. 什么是配置文件?为什么要做配置文件? 将所有的代码和配置都变成模块化可配置化,这样就提高了代码的重用性,不再每次都去修改代码内部,这个就是我们逐步要做的事情,可配置化 二. 配置文件长啥样? 配 ...

  7. java 调用 C# webapi

    最近项目需要 java调用  .net 的webapi. 对于get来说很简单,但是post方法遇到了些问题,最后也是曲线救国. 先看代码 Java  代码 public static void ma ...

  8. Gym - 101522H Hit!

    H. Hit! time limit per test 1.0 s memory limit per test 256 MB input standard input output standard ...

  9. c++11 基于范围的for循环

    c++11 基于范围的for循环 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> # ...

  10. 【Treap 例题】神秘岛(island)

    神秘岛(island) 题目描述: 除了敲代码和撩妹,旅行是cxw123 的第三爱好.他来到了澳大利亚东北部的大宝礁,在这里,有一个隔绝人世的神秘岛,这个岛不同于附近其他的珊瑚岛,它的生长速度极快,甚 ...