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
 

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
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
 
 
 
 

8.Tomcat配置文件

语法:
注释:以<!--开头,以-->结尾,中间包含的都是注释,段注释
 
vim /application/tomcat/conf/server.xml
 
# 指定关闭tomcat的端口号及暗号
<Server port="8005" shutdown="SHUTDOWN">
 
查看日志(最详细)
[root@cs7 ~]# tailf /application/tomcat/logs/catalina.out
 
 
# 指定tomcat的web站点监听端口
<Connector port="8080" protocol="HTTP/1.1"
   connectionTimeout="20000"
   redirectPort="8443" />
 
  
# 专门和apache通信的端口,不用,注释掉
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
           

2.自定义网站目录

默认在webapps/ROOT
以前地址:  http://10.0.0.201:8080/memtest/meminfo.jsp
 
 
安装memtest.war同前面
想要的地址:http://10.0.0.201:8080/meminfo.jsp
 
第一种方法:
将meminfo.jsp放入ROOT目录(默认站点都是从ROOT开始)不常用
第二种方法: 
nginx的location规则
location /oldboyedu/ {
  ....
}
vim /application/tomcat/conf/server.xml
# context === location   path="" === /oldboyedu/
<Context path="" docBase="/application/tomcat/webapps/memtest" debug="0" reloadable="false" crossContext="true"/>
sed -i.ori '125a <Context path="" docBase="/application/tomcat/webapps/memtest" debug="0" reloadable="false" crossContext="true"/>' /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/
 

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)
禁用管理端
 
[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启动

 
 
 
 
 
 
[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

 
 
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
 
 
 
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;">

 
 
 
 

Tomcat & SVN的更多相关文章

  1. Jenkins +Maven+Tomcat+SVN +Apache项目持续集成构建

    详解Jenkins +Maven+Tomcat+SVN +Apache项目持续集成 一:前言 1. Jenkins jenkins版本大全http://mirrors.jenkins-ci.org/ ...

  2. Jenkins+Tomcat+svn+maven自动化构建简单过程

    搭建好jenkins自动化构建之后,点击立即构建,即可将svn服务器上的源码自动编译构建,并打成war包,然后将这个war包以及编译好的项目复制到指定服务器的tomcat容器里,当svn服务器的代码有 ...

  3. 第36-37 Tomcat & SVN

    1. Tomcat简介 tomcat是一个web服务器,类似nginx,apache的http nginx,http只能处理html等静态文件(jpg) 网页分为静态网页(以.html或者.htm结尾 ...

  4. tomcat+svn+maven+jenkins实现自动构建

    首先说明一个各软件的版本: tomcat:apache-tomcat-8.5.16.tar.gz maven:apache-maven-3.5.0-bin.tar.gz svn:subversion- ...

  5. Jenkins+maven+Tomcat+SVN一键自动打包部署应用到服务器

    今天请教了大神,终于把jenkins给搞明白了 现在做下笔记,防止自己老年痴呆又忘了怎么配置 (截图可能不够清晰,有不清楚的随时评论打call) 机器配置: 安装配置规划 机器 192.168.169 ...

  6. jenkins安装以及自由风格的项目搭建(jenkins+tomcat+svn)

    jenkins提供了直接通过war包启动以及通过tomcat容器启动的启动方法,这里使用tomcat来启动jenkins,这也是我觉得更稳定的方法. 提前搭建好tomcat环境,这里我使用的版本是:A ...

  7. Jenkins配置Java项目1(Java+Maven+Tomcat+SVN/Git)

    先收集几个网址,后续再自己动手过一遍 http://www.cnblogs.com/leefreeman/p/4211530.html http://www.cnblogs.com/sunzhench ...

  8. 车辆管理系统之搭建框架 添加必要的数据 安装svn(二)

    JAVA EE第一阶段项目——车辆管理系统.MyEclipse + MySQL +powerDesinger +tomcat +svn. 今天组长把项目的分工安排好了!这个周末两天的作业就是我的车主信 ...

  9. jenkins中配置svn 出现absolute path is not allowed

    代码: 兵马未动,粮草先行 作者: 传说中的汽水枪 如有错误,请留言指正,欢迎一起探讨. 转载请注明出处. 想用jenkins作自动化部署tomcat. svn代码已经checkout到本地目录了(/ ...

随机推荐

  1. 机器学习入门-K-means算法

    无监督问题,我们手里没有标签 聚类:相似的东西聚在一起 难点:如何进行调参 K-means算法 需要制定k值,用来获得到底有几个簇,即几种类型 质心:均值,即向量各维取平均值 距离的度量: 欧式距离和 ...

  2. 字典(dictionary) 的基本操作

    info = { ’stu1101‘ : ’xiaoming’, ‘stu1102 : xiahong‘, ’stu1103 : ‘xiaozhi', } 1. 字典的获取 info.get('stu ...

  3. SOA和微服务到底是什么关系

    本文原创,原文地址为:http://www.cnblogs.com/fengzheng/p/5847441.html SOA和微服务到底是什么关系? 说实话,我确实不明白SOA和微服务到底有什么本质上 ...

  4. 快速可靠网络传输协议 KCP(转)

    KCP 是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低30%-40%,且最大延迟降低三倍的传输效果.纯算法实现,并不负责底层协议(如UDP)的收发,需要使用者自己定 ...

  5. SSM总结

    1    报错: cvc-complex-type.2.4.a: Invalid content was found starting with element 'async-supported'.  ...

  6. 出现了npm ERR! cb() never called!错误

    执行npm i 命令时,出现了npm ERR! cb() never called!错误 解决方案: 1.首先清除你的npm缓存: sudo npm cache clean -f 一般情况执行完后再试 ...

  7. Ansible Playbook Variables

    虽然自动化存在使得更容易使事情重复,但所有的系统可能不完全一样. 在某些系统上,您可能需要设置一些与其他操作略有不同的行为或配置. 此外,一些观察到的远程系统的行为或状态可能需要影响如何配置这些系统. ...

  8. 将2020年交期的PR回写出来了

    OUT_pr表中的交期为2020年和2019年,不应该 回写的PR却回写出来了 优化如下:

  9. Docker Dockerfile 定制镜像(转)

    转自: https://yeasy.gitbooks.io/docker_practice/ 及 https://blog.csdn.net/wo18237095579/article/details ...

  10. 一些unity问题的收集

    ---恢复内容开始--- 1.Mono打不开且鼠标点击标签页无反应的解决办法 http://answers.unity3d.com/questions/574157/monodevelop-not-o ...