tomcat -> 简介&部署
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.1708 (Core) [root@web03 ~]# uname -a Linux web03 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 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(1)
安装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.27.tar.gz cp -a apache-tomcat-8.0.27 tomcat01 cp -a apache-tomcat-8.0.27 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
在浏览器访问,进行测试