Tomcat & SVN

Easter79
• 阅读 750

1. Tomcat简介

tomcat是一个web服务器,类似nginx,apache的http

nginx,http只能处理html等静态文件(jpg)

网页分为静态网页(以.html或者.htm结尾的url地址)和动态网页

nginx和http配合php就能够处理动态的网页(.php结尾)

tomcat也可以处理静态的html文件

tomcat配合jdk就能够处理动态的网页(.jsp结尾)

http://blog.oldboyedu.com/java-tomcat/

2. Tomcat安装

cd /application/tools/

# 上传软件包

2.1 安装JDK

jdk==》java虚拟机(jvm)

tar xf jdk-8u161-linux-x64.tar.gz -C /application/

ln -s /application/jdk1.8.0_161 /application/jdk

#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

sed -i.ori '$a export JAVA_HOME=/application/jdk\nexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH\nexport CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar' /etc/profile

source /etc/profile

java -version

2.2 安装Tomcat

tar xf apache-tomcat-8.0.50.tar.gz -C /application/

ln -s /application/apache-tomcat-8.0.50 /application/tomcat

echo 'export TOMCAT_HOME=/application/tomcat'>>/etc/profile

source /etc/profile

chown -R root.root /application/jdk/ /application/tomcat/

/application/tomcat/bin/version.sh

Tomcat & SVN

3. Tomcat目录结构

[root@oldboyedu tools]# cd /application/tomcat/

[root@oldboyedu tomcat]# tree -L 1

.

├── bin     # 启动文件目录,startup.sh,shutdown.sh,catalina.sh(核心)

├── conf    # 配置文件目录,server.xml(主配置文件),tomcat-users.xml(用户管理)

├── lib

├── LICENSE

├── logs    # 日志目录

├── NOTICE

├── RELEASE-NOTES

├── RUNNING.txt

├── temp    # 临时目录

├── webapps # 站点存放目录,类似nginx的html目录

└── work    # #→用以产生有JSP编译出的Servlet的.java和.class文件

7 directories, 4 files

关注点:bin、conf、logs、webapps

4. 启动/关闭tomcat

/application/tomcat/bin/startup.sh

/application/tomcat/bin/shutdown.sh

[root@oldboyedu conf]# netstat -tunlp|grep java

tcp6       0      0 :::8009                 :::*                    LISTEN      5322/java

tcp6       2      0 :::8080                 :::*                    LISTEN      5322/java

[root@oldboyedu conf]# ps -ef|grep [j]ava

5. 查看日志,读懂日志

[root@oldboyedu logs]# ls

catalina.out               # 实时记录tomcat运行信息,文件会越来越大,定时清空

catalina.2017-10-24.log    # catalina.out文件每天的日志切割文件

[root@oldboyedu logs]# pwd

/application/tomcat/logs

[root@oldboyedu logs]# tailf catalina.out

Tomcat & SVN

Server startup in 108301 ms  # tomcat已经启动的标识

6. Tomcat在CentOS7启动慢的原因

见群文件《CentOS Tomcat 启动过程很慢》

7. 搭建jpress--java版本的wordpress

JSP网页

Linux + Nginx + PHP + MySQL

Linux + Tomcat + JDK + MySQL (db01)

7.1 连接db01的数据库

create database jpress DEFAULT CHARACTER SET utf8;

grant all on jpress.* to jpress@'172.16.1.0/255.255.255.0' identified by 'jpress';

flush privileges;

7.2 部署站点代码

上传jpress-web-newest.war到webapps目录

会自动解压

先改名,再把它移动走。

mv jpress-web-newest jpress

http://10.0.0.200:8080/jpress/install

Tomcat & SVN

Tomcat & SVN

8.Tomcat配置文件

语法:

注释:以结尾,中间包含的都是注释,段注释

vim /application/tomcat/conf/server.xml

# 指定关闭tomcat的端口号及暗号

查看日志(最详细)

[root@cs7 ~]# tailf /application/tomcat/logs/catalina.out

Tomcat & SVN

Tomcat & SVN

# 指定tomcat的web站点监听端口

<Connector port="8080" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443" />

Tomcat & SVN

Tomcat & SVN

Tomcat & SVN

# 专门和apache通信的端口,不用,注释掉

<Host name="localhost"  appBase="webapps"

unpackWARs="true" autoDeploy="true">

2.自定义网站目录

默认在webapps/ROOT

以前地址:  http://10.0.0.201:8080/memtest/meminfo.jsp

安装memtest.war同前面

Tomcat & SVN

想要的地址:http://10.0.0.201:8080/meminfo.jsp

Tomcat & SVN

第一种方法:

将meminfo.jsp放入ROOT目录(默认站点都是从ROOT开始)不常用

第二种方法:

nginx的location规则

location /oldboyedu/ {

....

}

vim /application/tomcat/conf/server.xml

# context === location   path="" === /oldboyedu/

sed -i.ori '125a ' /application/tomcat/conf/server.xml

/application/tomcat/bin/shutdown.sh

/application/tomcat/bin/startup.sh

3.Tomcat多实例

多虚拟主机:nginx

多实例:tomcat,尽可能使用我们系统的资源(资源相对多)

32cores 256G  8*600G

cd /application/tools/

tar xf apache-tomcat-8.0.50.tar.gz

cp -a apache-tomcat-8.0.50 /application/tomcat8_1

cp -a apache-tomcat-8.0.50 /application/tomcat8_2

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

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

# 生产经验:将已经配置的实例打包,以后方便批量配置多实例

tar zcf tomcat_muti.tar.gz ./tomcat8_1/ ./tomcat8_2/

[root@cs7 ~]# tar tf /tmp/webpp_multi.tar.gz

/application/tomcat8_1/bin/startup.sh

/application/tomcat8_2/bin/startup.sh

netstat -tunlp|grep java

http://10.0.0.200:8081/

http://10.0.0.200:8082/

Tomcat & SVN

4.Tomcat反向代理集群

root@cs7 conf]# vim nginx.conf

worker_connections 1024;

}

http {

include mime.types;

default_type application/octet-stream;

sendfile on;

keepalive_timeout 65;

upstream web_pools {

server 10.0.0.200:8081;

server 10.0.0.200:8082;

}

server {

listen 80;

server_name localhost;

location / {

index index.jsp index.html index.htm;

proxy_pass http://web\_pools;

proxy_set_header Host $http_host;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

}

}

上述部署完一直浏览器无法访问,报400错误

在 / location 添加  proxy_set_header Host $http_host;

[root@cs7 conf]# curl 10.0.0.201

[root@cs7 conf]# curl 10.0.0.201

[root@cs7 conf]# wget 10.0.0.201

--2018-09-23 22:22:45-- http://10.0.0.201/

正在连接 10.0.0.201:80... 已连接。

已发出 HTTP 请求,正在等待回应... 400 Bad Request

2018-09-23 22:22:45 错误 400:Bad Request。

改正后

[root@cs7 conf]# curl 10.0.0.201

tomcat8_1

[root@cs7 conf]# curl 10.0.0.201

tomcat8_2

[root@cs7 conf]# curl 10.0.0.201

tomcat8_1

[root@cs7 conf]# curl 10.0.0.201

tomcat8_2

[root@cs7 conf]# curl 10.0.0.201

tomcat8_1

5.Tomcat监控

jps -lvm  能够看到当前运行的java进程及pid号

6.Tomcat优化

6.1 安全优化(必会)

telnet、nc管理端口保护(8005)

ajp连接端口保护(8009)

禁用管理端

Tomcat & SVN

[root@oldboyedu webapps]# pwd

/application/tomcat8_1/webapps

[root@oldboyedu webapps]# mv * /tmp/

[root@oldboyedu webapps]# ls

[root@oldboyedu webapps]# mkdir ROOT

[root@oldboyedu webapps]# ls

ROOT

降权启动:降低权限启动tomcat

不要以root启动

Tomcat & SVN

Tomcat & SVN

Tomcat & SVN

Tomcat & SVN

Tomcat & SVN

Tomcat & SVN

[root@oldboyedu ~]# useradd tomcat

[root@oldboyedu ~]# cp -a /application/tomcat8_2 /home/tomcat/

[root@oldboyedu ~]# ls /home/tomcat/

tomcat8_2

[root@oldboyedu ~]# chown -R tomcat.tomcat /home/tomcat/tomcat8_2/

[root@oldboyedu ~]# su - tomcat

[tomcat@oldboyedu ~]$ ls

tomcat8_2

[tomcat@oldboyedu ~]$ tomcat8_2/bin/startup.sh

Using CATALINA_BASE:   /home/tomcat/tomcat8_2

Using CATALINA_HOME:   /home/tomcat/tomcat8_2

Using CATALINA_TMPDIR: /home/tomcat/tomcat8_2/temp

Using JRE_HOME:        /application/jdk

Using CLASSPATH:       /home/tomcat/tomcat8_2/bin/bootstrap.jar:/home/tomcat/tomcat8_2/bin/tomcat-juli.jar

Tomcat started.

[tomcat@oldboyedu ~]$ ps -ef|grep tomcat

root       5801   1752  0 12:27 pts/0    00:00:00 su - tomcat

tomcat     5802   5801  0 12:27 pts/0    00:00:00 -bash

tomcat     5837      1 42 12:27 pts/0    00:00:02 /application/jdk/bin/java -Djava.util.logging.config.file=/home/tomcattomcat8_2/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/home/tomcat/tomcat8_2/endorsed -classpath /home/tomcat/tomcat8_2/bin/bootstrap.jar:/home/tomcat/tomcat8_2/bin/tomcat-juli.jar -Dcatalina.base=/home/tomcat/tomcat8_2 -Dcatalina.home=/home/tomcat/tomcat8_2 -Djava.io.tmpdir=/home/tomcat/tomcat8_2/temp org.apache.catalina.startup.Bootstrap start

tomcat     5858   5802  0 12:27 pts/0    00:00:00 ps -ef

tomcat     5859   5802  0 12:27 pts/0    00:00:00 grep --color=auto tomcat

# 可以放入/etc/rc.local开机自启动

su - tomcat -c '/home/tomcat/tomcat8_2/bin/startup.sh'

http://blog.oldboyedu.com/java-tomcat/

JVM memory detail info :

Max memory:1945MB

Total memory:1945MB

Free memory:1907MB

Available memory can be used is :1907MB


svn

Tomcat & SVN

Tomcat & SVN

Tomcat & SVN

Tomcat & SVN

http://blog.oldboyedu.com/git/

[root@cs7 ~]# rpm -qa subversion

subversion-1.7.14-10.el7.x86_64

[root@cs7 ~]# mkdir -p /application/svndata

[root@cs7 ~]# mkdir -p /application/svnpasswd

[root@cs7 ~]#

[root@cs7 ~]#

[root@cs7 ~]# ll -d /application/svn*

drwxr-xr-x. 2 root root 6 Mar  6 23:40 /application/svndata

drwxr-xr-x. 2 root root 6 Mar  6 23:40 /application/svnpasswd

[root@cs7 ~]# svnserve -dr /application/svndata/

[root@cs7 ~]#

[root@cs7 ~]# ss -lntup |grep svn

tcp    LISTEN     0      7         *:3690                  *:*                   users:(("svnserve",pid=21123,fd=3))

创建版本库

svnadmin create /application/svndata/sadoc

[root@cs7 ~]# svnadmin create /application/svndata/sadoc

[root@cs7 ~]# tree /application/svndata/sadoc

/application/svndata/sadoc

├── conf

│ ├── authz

│ ├── passwd

│ └── svnserve.conf

├── db

│ ├── current

│ ├── format

│ ├── fsfs.conf

│ ├── fs-type

│ ├── min-unpacked-rev

│ ├── revprops

│ │ └── 0

│ │ └── 0

│ ├── revs

│ │ └── 0

│ │ └── 0

│ ├── transactions

│ ├── txn-current

│ ├── txn-current-lock

│ ├── txn-protorevs

│ ├── uuid

│ └── write-lock

├── format

├── hooks

│ ├── post-commit.tmpl

│ ├── post-lock.tmpl

│ ├── post-revprop-change.tmpl

│ ├── post-unlock.tmpl

│ ├── pre-commit.tmpl

│ ├── pre-lock.tmpl

│ ├── pre-revprop-change.tmpl

│ ├── pre-unlock.tmpl

│ └── start-commit.tmpl

├── locks

│ ├── db.lock

│ └── db-logs.lock

└── README.txt

10 directories, 27 files

[root@cs7 ~]#

[root@cs7 ~]# cd /application/svndata/sadoc/conf/

[root@cs7 conf]# ll

总用量 12

-rw-r--r-- 1 root root 1080 9月 23 23:03 authz

-rw-r--r-- 1 root root 309 9月 23 23:03 passwd

-rw-r--r-- 1 root root 3090 9月 23 23:03 svnserve.conf

mv authz passwd /application/svnpasswd/

[root@cs7 conf]# diff svnserve.conf*

19,20c19,20

< anon-access = none

< auth-access = write

---

> # anon-access = read

> # auth-access = write

27c27

< password-db = /application/svnpasswd/passwd

---

> # password-db = passwd

34c34

< authz-db = /application/svnpasswd/authz

---

> # authz-db = authz

[root@cs7 svnpasswd]# tail -5 passwd

# sally = sallyssecret

lewen = 123456

kevin = 123456

root = 123456

[root@cs7 svnpasswd]# tail -5 authz

# * = r

sa = lewen,kevin,root

[sadoc:/]

lewen = rw

kevin = r

--

[root@cs7 svnpasswd]# svnserve -dr /application/svndata/

[root@cs7 svnpasswd]# ss -lntup|grep svn

tcp    LISTEN     0      7         *:3690                  *:*                   users:(("svnserve",pid=21394,fd=3))

#客户端下载地址

https://tortoisesvn.net/downloads.zh.html

Tomcat & SVN

Tomcat & SVN

Tomcat & SVN

Tomcat & SVN

SVN客户端密码保存地点:

C:\Users\oldboy\AppData\Roaming\Subversion\auth\svn.simple

sadoc/

oldboy  rw

alex    r

lee     r

http://blog.51cto.com/xiexiaojun/2049665

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
Easter79
Easter79
Lv1
今生可爱与温柔,每一样都不能少。
文章
2.8k
粉丝
5
获赞
1.2k