Tomcat与云服务器集群搭建

第一章: Tomcat

1.1 网站代码

  • PHP LNMP
  • Java LNMT(Tomcat/Resin/) Oracle(Weblogic)

1.2JVM

  • Windows
  • 我们希望 1分代码 可以运行在不同的 系统中 (代码的可移植性)
  • JAVA程序 会被放在1个叫虚拟机容器
  • JVM Java Virtual Machine Java 虚拟机 运行java程序:1份代码可以处处使用

1.3 JDK + TOMCAT

  • JDK Java Development Kit Java程序运行环境
  • TOMCAT (与nginx) 存放java程序代码
image

1.4 JDK + TOMCAT 环境准备


yum install -y tree vim wget bash-completion bash-completion-extras lrzsz net-tools sysstat iotop iftop htop unzip nc nmap telnet bc psmisc httpd-tools bind-utils

1.4.1

#准备jdk环境
[root@web01 tools]# tar xf jdk-8u60-linux-x64.tar.gz 
[root@web01 tools]# mkdir -p /application/
[root@web01 tools]# mv jdk
jdk1.8.0_60/               jdk-8u60-linux-x64.tar.gz  
[root@web01 tools]# mv jdk1.8.0_60/  /application/jdk-1.8.0 
[root@web01 tools]# ln -s /application/jdk-1.8.0 /application/jdk
[root@web01 tools]# ll /application/
total 0
lrwxrwxrwx 1 root root  22 Mar 26 16:56 jdk -> /application/jdk-1.8.0
drwxr-xr-x 8   10  143 255 Aug  5  2015 jdk-1.8.0

配置JDK环境变量

[root@web01 tools]# 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

[root@web01 tools]# . /etc/profile
[root@web01 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)
[root@web01 tools]# 

image

1.4.2 Tomcat

#部署Tomcat  
[root@web01 tools]# tar xf apache-tomcat-8.0.27.tar.gz 
[root@web01 tools]# ll
total 185912
drwxr-xr-x 9 root root       160 Mar 26 17:07 apache-tomcat-8.0.27
-rw-r--r-- 1 root root   9128610 Oct  5  2015 apache-tomcat-8.0.27.tar.gz
-rw-r--r-- 1 root root 181238643 Oct  5  2015 jdk-8u60-linux-x64.tar.gz
-rw-r--r-- 1 root root       332 Mar 26 16:59 profile.txt
[root@web01 tools]# mv apache-tomcat-8.0.27 /application/tomcat-8.0.27
[root@web01 tools]# ln -s /application/tomcat-8.0.27 /application/tomcat

[root@web01 tools]# echo 'export TOMCAT_HOME=/application/tomcat' >>/etc/profile
[root@web01 tools]# . /etc/profile

#检测 tomcat jdk环境变量是否ok
[root@web01 tools]# /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-862.el7.x86_64
Architecture:   amd64
JVM Version:    1.8.0_60-b27
JVM Vendor:     Oracle Corporation

image

1.4.3 启动Tomcat

#启动 tomcat
[root@web01 bin]# /app/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@lcx-01 app]# ss -lntup|grep java  
[root@web01 bin]# ps -ef |grep java 
root      21656      1 10 17:17 pts/0    00:00:06 /application/jdk/bin/java -Djava.util.logging.config.file=/application/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/application/tomcat/endorsed -classpath /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/application/tomcat -Dcatalina.home=/application/tomcat -Djava.io.tmpdir=/application/tomcat/temp org.apache.catalina.startup.Bootstrap start

1.4.4 阿里云上添加8080端口的安全组

image
image

1.5 Tomcat目录结构

[root@lcx-01 app]# ll /app/tomcat/
total 112
drwxr-xr-x 2 root root  4096 Jul  5 09:46 bin
drwxr-xr-x 3 root root  4096 Jul  5 10:11 conf
drwxr-xr-x 2 root root  4096 Jul  5 09:46 lib
-rw-r--r-- 1 root root 57011 Sep 28  2015 LICENSE
drwxr-xr-x 2 root root  4096 Jul  5 10:11 logs
-rw-r--r-- 1 root root  1444 Sep 28  2015 NOTICE
-rw-r--r-- 1 root root  6741 Sep 28  2015 RELEASE-NOTES
-rw-r--r-- 1 root root 16204 Sep 28  2015 RUNNING.txt
drwxr-xr-x 2 root root  4096 Jul  5 09:46 temp
drwxr-xr-x 7 root root  4096 Sep 28  2015 webapps
drwxr-xr-x 3 root root  4096 Jul  5 10:11 work

[root@lcx-01 app]# ls -l /app/tomcat/bin/{startup,shutdown,catalina,version}.sh
-rwxr-xr-x 1 root root 21389 Sep 28  2015 /app/tomcat/bin/catalina.sh   #核心
-rwxr-xr-x 1 root root  1902 Sep 28  2015 /app/tomcat/bin/shutdown.sh   #检查端口和进程是否没,关闭
-rwxr-xr-x 1 root root  1904 Sep 28  2015 /app/tomcat/bin/startup.sh    #启动
-rwxr-xr-x 1 root root  1908 Sep 28  2015 /app/tomcat/bin/version.sh

[root@lcx-01 tomcat]# ll conf/
total 216
drwxr-xr-x 3 root root   4096 Jul  5 10:11 Catalina
-rw------- 1 root root  12374 Sep 28  2015 catalina.policy
-rw------- 1 root root   7106 Sep 28  2015 catalina.properties
-rw------- 1 root root   1577 Sep 28  2015 context.xml
-rw------- 1 root root   3387 Sep 28  2015 logging.properties
-rw------- 1 root root   6458 Sep 28  2015 server.xml
-rw------- 1 root root   1744 Sep 28  2015 tomcat-users.xml
-rw------- 1 root root   1846 Sep 28  2015 tomcat-users.xsd
-rw------- 1 root root 167302 Sep 28  2015 web.xml

1.5.1

  • catalina.sh
    • shutdown.sh 和 startup.sh 调用的
    • 修改Tomcat参数 优化 修改这个文件
  • startup.sh
  • shutdown.sh #关闭

1.5.2 conf/

properties 属性

  • server.xml (nginx.conf) 主配置文件

1.5.3 logs

[root@lcx-01 tomcat]# ll logs/
total 144
-rw-r--r-- 1 root root 65763 Jul  5 10:26 catalina.2019-07-05.log
-rw-r--r-- 1 root root 65811 Jul  5 10:26 catalina.out  #核心日志
-rw-r--r-- 1 root root     0 Jul  5 10:11 host-manager.2019-07-05.log
-rw-r--r-- 1 root root  2504 Jul  5 10:26 localhost.2019-07-05.log
-rw-r--r-- 1 root root  2478 Jul  5 10:32 localhost_access_log.2019-07-05.txt
-rw-r--r-- 1 root root     0 Jul  5 10:11 manager.2019-07-05.log

  • D
  • catalina.out
    • tomcat日志 最全的日志
    • 这个日志默认会被轮询(定时切割),切割之后catalina.out日志内容不会被清空,会越来越大
  • catalina.2019-07-05.log 中间是日期,catalina.out的切割日志
  • localhost_access_log.2019-07-05.txt 访问日志

1.5.4 webapps

nginx html 站点目录

1.5.5了解

  • lib
[root@lcx-01 tomcat]# vim /server/scripts/01.py
# -*- encoding: utf-8 -*-
print('厉害了 老铁')
print('双击666')
[root@lcx-01 tomcat]# python /server/scripts/01.py 
厉害了 老铁
双击666

1.6 Tomcat 管理端配置

  • 开头字符集
  • 注释 xml格式中 <! -- 注释信息 -->
  • rolename 角色 RPG Role-play
[root@lcx-01 tomcat]# cat conf/tomcat-users.xml 
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users xmlns="http://tomcat.apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
              version="1.0">
  <role rolename="admin-gui"/>
  <role rolename="manager-gui"/>
  <role rolename="host-gui"/>
  <user username="lcx" password="123456" roles="admin-gui,manager-gui,host-gui"/>   #账号密码
</tomcat-users>

image

1.7 主配置文件

[root@lcx-01 tomcat]# ll conf/server.xml 
-rw------- 1 root root 6458 Jul  5 10:58 conf/server.xml

  • 8080 http端口
  • 8005 shutdown端口 连接上 输入暗号关闭tomcat 默认只能本地连接8005端口
 <Resource name="UserDatabase" auth="Container"

  • 管理端存放用户名密码的文件 及存放方式
<Resource name="UserDatabase" auth="Container"
          type="org.apache.catalina.UserDatabase"
          description="User database that can be updated and saved"
          factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
          pathname="conf/tomcat-users.xml" />

  • http协议端口8080
<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"    #超市时间(ms)
           redirectPort="8443" />   #https时候

  • 8009 AJP y与Apache 进行通讯
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

  • 相当于nginx的虚拟主机(server {})
    • <Host
    • xxxxxxxx
    • </Host>
Tomcat Nginx
Host name="localhost" server_name
appBase="webapps" root
  • unpackWARs="true" #自动解压
  • autoDeploy="true" #Deploy部署 自动加载到tomcat中
  • directory="logs" #日志文件

    <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
          resourceName="UserDatabase"/>
 </Realm>

 <Host name="localhost"  appBase="webapps"
       unpackWARs="true" autoDeploy="true">

   <!-- SingleSignOn valve, share authentication between web applications
        Documentation at: /docs/config/valve.html -->
   <!--
   <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
   -->

   <!-- Access log processes all example.
        Documentation at: /docs/config/valve.html
        Note: The pattern used is equivalent to using pattern="common" -->
   <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
          prefix="localhost_access_log" suffix=".txt"
          pattern="%h %l %u %t &quot;%r&quot; %s %b" />
   </Host>

1.8 Tomcat部署app应用

[root@lcx-01 tomcat]# yum install -y  mariadb-server 
[root@lcx-01 tomcat]#
[root@lcx-01 tomcat]# systemctl restart mariadb.service 
[root@lcx-01 tomcat]# systemctl enable mariadb.service 

[root@lcx-01 tomcat]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.60-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> 
MariaDB [(none)]> create database jpress DEFAULT CHARACTER SET utf8;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on jpress.* to jpress@'localhost' identified by '123456';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant all on jpress.* to jpress@'172.17.%.%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> drop user ''@'lcx-01';    #删除空表
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> drop user ''@'localhost'; #删除空表
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant all on jpress.* to root@'oldboy' identified by '123456';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> select user,host from mysql.user; #查看表
+-----------+-------------+
| user      | host        |
+-----------+-------------+
| root      | 127.0.0.1   |
| jpress    | 172.17.%.%  |
| root      | ::1         |
| root      | lcx-01      |
| jpress    | localhost   |
| root      | localhost   |
| root      | oldboy      |
+-----------+-------------+
8 rows in set (0.00 sec)

MariaDB [(none)]> flush privileges; #刷新
Query OK, 0 rows affected (0.00 sec)

  • 扩展 mysql -e 参数 非交互式执行SQL语句
  • su - jpress -c whoami
[root@lcx-01 tomcat]# mysql -ujpress -p -e 'select user();'
Enter password: 
+------------------+
| user()           |
+------------------+
| jpress@localhost |
+------------------+
[root@lcx-01 tomcat]# su - oldboy -c whoami
oldboy

  • 准备app(war包):
[root@lcx-01 tomcat大礼包]# mv jpress-web-newest.war /app/tomcat/webapps/jpress.war
[root@lcx-01 tomcat大礼包]# cd /app/tomcat/webapps/
[root@lcx-01 tomcat大礼包]# ll
total 20336
drwxr-xr-x 14 root root     4096 Jul  5 09:46 docs
drwxr-xr-x  6 root root     4096 Jul  5 09:46 examples
drwxr-xr-x  5 root root     4096 Jul  5 09:46 host-manager
drwxr-xr-x  7 root root     4096 Jul  5 12:40 ipress
-rw-r--r--  1 root root 20797013 Mar  3  2017 ipress.war
drwxr-xr-x  5 root root     4096 Jul  5 09:46 manager
drwxr-xr-x  3 root root     4096 Jul  5 09:46 ROOT

image
#重启Tomcat
[root@lcx-01 tomcat]# pkill java
[root@lcx-01 tomcat]# ps -ef|grep java
[root@lcx-01 tomcat]# 
[root@lcx-01 tomcat]# /app/tomcat/bin/startup.sh 
Using CATALINA_BASE:   /app/tomcat
Using CATALINA_HOME:   /app/tomcat
Using CATALINA_TMPDIR: /app/tomcat/temp
Using JRE_HOME:        /app/jdk
Using CLASSPATH:       /app/tomcat/bin/bootstrap.jar:/app/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@lcx-01 tomcat]# ps -ef|grep java
root      5065     1 99 13:14 pts/4    00:00:02 /app/jdk/bin/java -Djava.util.logging.config.file=/app/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/app/tomcat/endorsed -classpath /app/tomcat/bin/bootstrap.jar:/app/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/app/tomcat -Dcatalina.home=/app/tomcat -Djava.io.tmpdir=/app/tomcat/temp org.apache.catalina.startup.Bootstrap start
root      5082  2377  0 13:14 pts/4    00:00:00 grep --color=auto java
[root@lcx-01 tomcat]# 

#查看图片路径
[root@lcx-01 tomcat]# ll webapps/jpress
total 24
drwxr-xr-x  3 root root 4096 Jul  5 13:17 attachment
drwxr-xr-x  3 root root 4096 Jul  5 12:56 META-INF
-rw-r--r--  1 root root   96 Jul 27  2016 robots.txt
drwxr-xr-x 11 root root 4096 Jul  5 12:56 static
drwxr-xr-x  4 root root 4096 Jul  5 12:56 templates
drwxr-xr-x  6 root root 4096 Jul  5 12:56 WEB-INF
[root@lcx-01 tomcat]# ll webapps/jpress/attachment/20190705/
total 68
-rw-r--r-- 1 root root 22329 Jul  5 13:17 c41dda8267174a0a81de850224eaac3b_780x240.jpg
-rw-r--r-- 1 root root 42347 Jul  5 13:17 c41dda8267174a0a81de850224eaac3b.jpg

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容