1.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服务器。
对比php软件,区别?
目前Tomcat最新版本为9.0。Java容器还有resin、weblogic等。
2.tomcat 安装
2.1 准备
[root@nis ~]# cd /application/tools/
[root@nis tools]# rz
# apache-tomcat-8.0.27.tar.gz jdk-8u60-linux-x64.tar.gz apache-maven-3.3.9-bin.tar.gz
[root@nis tools]# ls
apache-maven-3.3.9-bin.tar.gz CentOS7_2.iso
apache-tomcat-8.0.27.tar.gz jdk-8u60-linux-x64.tar.gz
[root@nis tools]# tar xf jdk-8u60-linux-x64.tar.gz -C /application/
[root@nis tools]# ln -s /application/jdk1.8.0_60 /application/jdk
[root@nis tools]# sed -i.ori '$a export JAVA_HOME=/application/jdk\nexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH\nexport CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar' /etc/profile
[root@nis tools]# source /etc/profile
[root@nis tools]# 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)
2.2 安装tomcat
[root@nis tools]# tar xf apache-tomcat-8.0.27.tar.gz -C /application/
[root@nis tools]# ln -s /application/apache-tomcat-8.0.27 /application/tomcat
[root@nis tools]# echo 'export TOMCAT_HOME=/application/tomcat'>>/etc/profile
[root@nis tools]# source /etc/profile
[root@nis tools]# chown -R root.root /application/jdk/ /application/tomcat/
[root@nis tools]# tail -4 /etc/profile
export JAVA_HOME=/application/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
export TOMCAT_HOME=/application/tomcat
2.3 目录介绍
[root@tomcat ~]# cd /application/tomcat/
[root@tomcat tomcat]# tree -L 1
.
├── bin #→用以启动、关闭Tomcat或者其它功能的脚本(.bat文件和.sh文件)
├── conf #→用以配置Tomcat的XML及DTD文件
├── lib #→存放web应用能访问的JAR包
├── LICENSE
├── logs #→Catalina和其它Web应用程序的日志文件
├── NOTICE
├── RELEASE-NOTES
├── RUNNING.txt
├── temp #→临时文件
├── webapps #→Web应用程序根目录
└── work #→用以产生有JSP编译出的Servlet的.java和.class文件
7 directories, 4 files
[root@tomcat tomcat]# cd webapps/
[root@tomcat webapps]# ll
total 20
drwxr-xr-x 14 root root 4096 Oct 5 12:09 docs #→tomcat帮助文档
drwxr-xr-x 6 root root 4096 Oct 5 12:09 examples #→web应用实例
drwxr-xr-x 5 root root 4096 Oct 5 12:09 host-manager #→管理
drwxr-xr-x 5 root root 4096 Oct 5 12:09 manager #→管理
drwxr-xr-x 3 root root 4096 Oct 5 12:09 ROOT #→默认网站根目录
2.4 启动tomcat
#→启动程序/application/tomcat/bin/startup.sh
#→关闭程序/application/tomcat/bin/shutdown.sh
[root@nis bin]# /application/tomcat/bin/startup.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
Tomcat started.
[root@nis bin]# netstat -tunlp|grep java
tcp6 0 0 :::8009 :::* LISTEN 13394/java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 13394/java
找不到8080端口
[root@nis bin]# systemctl is-enabled firewalld.service disabled
[root@nis bin]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
http://10.0.0.201:8080/ #网页版
2.5 配置文件
[root@nis conf]# tail -4 tomcat-users.xml
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>
</tomcat-users>
[root@nis conf]# /application/tomcat/bin/shutdown.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
[root@nis conf]# /application/tomcat/bin/startup.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
Tomcat started.
2.6 web站点部署
[root@nis conf]# cd /application/tomcat/webapps/
[root@nis webapps]# cd ROOT/
[root@nis ROOT]# ls
asf-logo.png bg-nav.png RELEASE-NOTES.txt tomcat.svg
asf-logo-wide.gif bg-upper.png tomcat.css WEB-INF
bg-button.png build.xml tomcat.gif
bg-middle.png favicon.ico tomcat.png
bg-nav-item.png index.jsp tomcat-power.gif
[root@nis ROOT]# rm -rf *
[root@nis ROOT]# ls
[root@nis ROOT]# rz -E
rz waiting to receive.
[root@nis ROOT]# ls
jpress-web-newest.war
[root@nis ROOT]# jar xf jpress-web-newest.war
[root@nis ROOT]# ls
jpress-web-newest.war robots.txt templates
META-INF static WEB-INF
2.6.1 创建数据库
db01上执行
[root@db01 ~]# mysql -uroot -poldboy123
mysql> create database jpress DEFAULT CHARACTER SET utf8;
Query OK, 1 row affected (0.07 sec)
mysql> grant all on jpress.* to jpress@'172.16.1.%' identified by '123456';
Query OK, 0 rows affected (0.02 sec)
mysql> ^DBye
在浏览器上登录配置
http://10.0.0.201:8080/admin/index
3 tomcat多实例
[root@nis ~]# cd /application/tomcat/webapps/ROOT/
[root@oldboyedu ROOT]# ll
总用量 20316
-rw-r--r-- 1 root root 20797013 8月 2 19:19 jpress-web-newest.war
drwxr-xr-x 3 root root 36 9月 19 2016 META-INF
-rw-r--r-- 1 root root 96 7月 27 2016 robots.txt
drwxr-xr-x 11 root root 130 9月 19 2016 static
drwxr-xr-x 4 root root 29 9月 19 2016 templates
drwxr-xr-x 6 root root 70 9月 19 2016 WEB-INF
[root@nis ROOT]# cd /application/tools/
[root@nis tools]# ls
apache-maven-3.3.9-bin.tar.gz CentOS7_2.iso
apache-tomcat-8.0.27.tar.gz jdk-8u60-linux-x64.tar.gz
[root@nis tools]# tar xf apache-tomcat-8.0.27.tar.gz
[root@nis tools]# ls
apache-maven-3.3.9-bin.tar.gz CentOS7_2.iso
apache-tomcat-8.0.27 jdk-8u60-linux-x64.tar.gz
apache-tomcat-8.0.27.tar.gz
[root@nis tools]# chown -R root.root apache-tomcat-8.0.27
[root@nis tools]# cp -a apache-tomcat-8.0.27 tomcat8_1
[root@nis tools]# cp -a apache-tomcat-8.0.27 tomcat8_2
[root@nis tools]# sed -i 's#8005#8011#;s#8080#8081#' tomcat8_1/conf/server.xml
[root@nis tools]# sed -i 's#8005#8012#;s#8080#8082#' tomcat8_2/conf/server.xml
[root@nis tools]# tar zcf tomcat8_mutli.tar.gz ./tomcat8_1 ./tomcat8_2
[root@nis tools]# ls
apache-maven-3.3.9-bin.tar.gz jdk-8u60-linux-x64.tar.gz
apache-tomcat-8.0.27 tomcat8_1
apache-tomcat-8.0.27.tar.gz tomcat8_2
CentOS7_2.iso tomcat8_mutli.tar.gz
[root@nis tools]# ll -h
总用量 4.3G
-rw-r--r-- 1 root root 8.1M 8月 2 19:19 apache-maven-3.3.9-bin.tar.gz
drwxr-xr-x 9 root root 149 8月 4 08:52 apache-tomcat-8.0.27
-rw-r--r-- 1 root root 8.8M 8月 2 19:19 apache-tomcat-8.0.27.tar.gz
-rw-r--r-- 1 qemu qemu 4.1G 7月 31 17:17 CentOS7_2.iso
-rw-r--r-- 1 root root 173M 8月 2 19:19 jdk-8u60-linux-x64.tar.gz
drwxr-xr-x 9 root root 149 8月 4 08:52 tomcat8_1
drwxr-xr-x 9 root root 149 8月 4 08:52 tomcat8_2
-rw-r--r-- 1 root root 18M 8月 4 09:03 tomcat8_mutli.tar.gz
[root@nis tools]# tar xf tomcat8_mutli.tar.gz -C /application/
[root@nistools]# /application/tomcat8_1/bin/startup.sh
Using CATALINA_BASE: /application/tomcat8_1
Using CATALINA_HOME: /application/tomcat8_1
Using CATALINA_TMPDIR: /application/tomcat8_1/temp
Using JRE_HOME: /application/jdk
Using CLASSPATH: /application/tomcat8_1/bin/bootstrap.jar:/application/tomcat8_1/bin/tomcat-juli.jar
Tomcat started.
[root@nis tools]# /application/tomcat8_2/bin/startup.sh
Using CATALINA_BASE: /application/tomcat8_2
Using CATALINA_HOME: /application/tomcat8_2
Using CATALINA_TMPDIR: /application/tomcat8_2/temp
Using JRE_HOME: /application/jdk
Using CLASSPATH: /application/tomcat8_2/bin/bootstrap.jar:/application/tomcat8_2/bin/tomcat-juli.jar
Tomcat started.
[root@nis tools]# netstat -tunlp |grep java
tcp6 0 0 :::8009 :::* LISTEN 3507/java
tcp6 0 0 127.0.0.1:8011 :::* LISTEN 6991/java
tcp6 0 0 127.0.0.1:8012 :::* LISTEN 7042/java
tcp6 0 0 :::8081 :::* LISTEN 6991/java
tcp6 0 0 :::8082 :::* LISTEN 7042/java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 3507/java
4. tomcat集群
[root@lb01 ~]# cd /application/nginx/conf/
[root@lb01 conf]# ll
total 72
-rw-r--r-- 1 root root 1077 Jun 30 06:12 fastcgi.conf
-rw-r--r-- 1 root root 1077 Jun 30 06:12 fastcgi.conf.default
-rw-r--r-- 1 root root 1007 Jun 30 06:12 fastcgi_params
-rw-r--r-- 1 root root 1007 Jun 30 06:12 fastcgi_params.default
-rw-r--r-- 1 root root 2837 Jun 30 06:12 koi-utf
-rw-r--r-- 1 root root 2223 Jun 30 06:12 koi-win
-rw-r--r-- 1 root root 3957 Jun 30 06:12 mime.types
-rw-r--r-- 1 root root 3957 Jun 30 06:12 mime.types.default
-rw-r--r-- 1 root root 841 Jul 25 06:29 nginx.conf
-rw-r--r-- 1 root root 840 Jul 1 06:18 nginx.conf.bak
-rw-r--r-- 1 root root 947 Jul 1 07:32 nginx.conf.bak.uri
-rw-r--r-- 1 root root 820 Jul 1 08:57 nginx.conf.bak.url.k
-rw-r--r-- 1 root root 2656 Jun 30 06:12 nginx.conf.default
-rw-r--r-- 1 root root 0 Jul 1 07:32 nginx.confg
-rw-r--r-- 1 root root 636 Jun 30 06:12 scgi_params
-rw-r--r-- 1 root root 636 Jun 30 06:12 scgi_params.default
-rw-r--r-- 1 root root 664 Jun 30 06:12 uwsgi_params
-rw-r--r-- 1 root root 664 Jun 30 06:12 uwsgi_params.default
-rw-r--r-- 1 root root 3610 Jun 30 06:12 win-utf
[root@lb01 conf]# cp nginx.conf{,.2017.8.4.bak}
[root@lb01 conf]# vim nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream web_pools {
}
server {
listen 80;
server_name bbs.etiantian.org;
location / {
proxy_pass http://web_pools;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://web_pools;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
}
"nginx.conf" 36L, 841C written
[root@lb01 conf]# nginx -t
nginx: the configuration file /application/nginx-1.10.3/conf/nginx.conf syntax is ok
nginx: configuration file /application/nginx-1.10.3/conf/nginx.conf test is successful
[root@lb01 conf]# nginx -s reload
[root@nis tools]# echo 8081>>/application/tomcat8_1/webapps/ROOT/index.jsp
[root@nis tools]# echo 8082>>/application/tomcat8_2/webapps/ROOT/index.jsp
[root@nis bin]# vim catalina.sh +97
CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=10.0.0.201"
![](https://i-blog.csdnimg.cn/blog_migrate/506e5e5bb3e2e7755f1c3859ff76db28.png)
[root@nis bin]# tail -1 /etc/hosts
10.0.0.201 oldboyedu
[root@nis bin]# ./shutdown.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
[root@nis bin]# ./startup.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
Tomcat started.
[root@nis bin]# netstat -tunlp|grep java
tcp6 0 0 :::8009 :::* LISTEN 18088/java
tcp6 0 0 127.0.0.1:8011 :::* LISTEN 6991/java
tcp6 0 0 127.0.0.1:8012 :::* LISTEN 7042/java
tcp6 0 0 :::8081 :::* LISTEN 6991/java
tcp6 0 0 :::8082 :::* LISTEN 7042/java
tcp6 0 0 :::40598 :::* LISTEN 18088/java
tcp6 0 0 :::12345 :::* LISTEN 18088/java
tcp6 0 0 :::56926 :::* LISTEN 18088/java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 18088/java