tomcat的管理功能

- 如图,访问tomcat 的默认管理页面
- 能够看到右边有 三个选项,这三个选项是用来管理tomcat服务器的
- 可是如今还不可使用,须要先配置一下
- 首先配置 host manager
- cd /usr/local/tomcat/conf/
- vim tomcat-user.xml 编辑配置文件

- 如图,在 tomcat-users 标签的上面一行插入代码
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="tomcat" password="tomcat123" roles="admin-script,admin-gui"/>

- 如图,代码定义了两个 role
- 还定义了帐号密码
- 由于 host manager 功能须要用到这两个role
- 保存退出
- 而后须要重启 tomcat
- cd /usr/local/tomcat/bin/
- 使用命令 ./shutdown.sh 关闭tomcat
- 而后 ./startup.sh 开启tomcat
- 这样就算重启了tomcat ,每次修改配置文件都须要这样重启一下tomcat
- cd /usr/local/tomcat/webapps/host-manager/META-INF/
- 这个目录里面有一个文件叫作 context.xml

- 如图,这里能够定义哪一个ip地址能够访问,这里没有定义的ip就不能够访问

- 如图,在原来的放行名单后面加上 |192.168.64.\d+
- 由于这里定义的时候可使用正则表达式
- 正则表达式里面 . 表明任意一个字符
- 因此要被识别为 . 而不是其它意思的话,前面要加 \ 转义
- 符号 \d+ 表示1个或多个数字
- 符号 | 表明或者
- 加在原来字符的后面表示在原来的通行条件上
- 加上后面这一段通行条件
- 也就是 192.168.64.xxx 这个网段的 ip 均可以放行
- 保存退出,重启 tomcat

- 如今点击 host manager 按钮
- 会要求输入帐号密码
- 帐号密码就是上面配置文件里面定义的帐号密码 tomcat 和 tomcat123

- 如图,输入帐号密码后,就能够进入这个管理界面
- 若是不进行上面配置的话,这里就变成 403 了

- 如图,这个管理页面能够管理tomcat里面的虚拟主机
- 能够看到 zrblog.com 是以前配置好的虚拟主机
- 这里若是点击中止,那么这个虚拟主机就会被 tomcat 中止
- 而后就不能够被访问了,固然,还能够再次点击打开虚拟主机
- 这样就又能够访问了
- 还能够在这个页面添加虚拟主机

- 如图,这里添加 域名,别名,点击添加就能够添加一个虚拟主机

- 如图,这里添加了一个 bbb 虚拟主机

- 如图,访问 www.bbb.com 显示 404
- 这是正确的,由于这个域名下面什么都没有,因此是404
- 经过这个方法添加的虚拟主机,tomcat重启以后就会消失
- 由于这种方法添加的虚拟主机并无保存到配置文件里面
- 可是 web 页面添加的虚拟主机实际上并无消失
- 因此重复添加同一个域名的虚拟主机是不行的
- /usr/local/tomcat/conf/Catalina/ 这个目录里面有web页面添加的虚拟主机的目录

- 如图,cd /usr/local/tomcat/conf/Catalina/ 进入这个目录
- 能够看到 www.aaa.com 和 www.bbb.com 目录
- 这两个目录里面就是自动建立的
- 在 web 页面添加的虚拟主机都会在这里自动建立本身的目录
- 这么目录是永久存在的,可是添加的虚拟主机重启后就消失了
- 要解决这个问题
- cd /usr/local/tomcat/conf/
- vi server.xml
<Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>
- 上面这段代码添加到 server.xml 里面

- 如图,代码添加到图中的位置
- 在 8005 的代码块里面
- 保存退出,重启 tomcat

- 如图,从新添加虚拟主机,应用程序库实际上就是网站程序的路径
- 随便写一个 /data/www.aaa.com/ 路径,而后添加

- 如图,出现 403 ,看返回的信息,彷佛要用到 manager 的一个配置文件
- 因此要想实现页面添加虚拟主机,永久保存,还须要使用 manager
- 因此还要配置一下 manager ,使 manager 可用才行
- cd /usr/local/tomcat/conf/
- vim tomcat-user.xml
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="tomcat" password="tomcat" roles="admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status"/>

- 如图,添加 4个 manager 的role
- 下面的 user标签里面的 roles 也要加上新添加的 rolename
- 其实只添加 manager-gui 和 manager-script 也能够
- 若是遇到提示须要添加后面两个 role 的状况,再加上去也行
- 保存退出
- cd /usr/local/tomcat/webapps/manager/META-INF/
- vi context.xml

- 如图,添加这一段
|192\.168\.64\.\d+
- 这是容许 192.168.64.xxx 网段的 ip 访问 manager
- 这里不设置放开的网段的话,就访问不了
- 这里能够设置容许哪一个 ip 访问,或者哪一类ip访问,可使用正则表达式
- 保存退出,重启tomcat
- 如今就能够访问 manager 了,也能够持久化保存新增的 虚拟主机
- 能够 vi conf/server.xml 查看虚拟主机配置文件
- 里面会有新增的虚拟主机的信息

- 如图,新增虚拟主机后,尚未保存到配置文件里面
- 须要点击下面的 持久化配置 所有 那个按键,才会保存到配置文件里面
- 保存以后,能够到 server.xml 文件里面查看,新增的虚拟主机信息会写入里面

- 如图,如今能够访问manager
- 这里能够看到,webapps 根目录,docs 目录... 等目录
- 能够对这些目录进行管理
- 由于这个页面就是 manager 本身,因此在这个页面是不能关闭 manager的
- 若是在这个页面 stip host-manager
- 再访问 host-manager 就会变成 404 没法访问了

- 如图,这里能够指定 war 包的路径进行 war 包部署
- 下面的功能是在这里上传 war 包,让 tomcat 自动部署
tomcat的日志

- 如图,cd /usr/local/tomcat/logs/
- 能够看到目录内的文件
- 主要是5个类型,catalina , host-manager, localhost, localhost-access, manager
- host-manager 记录一些 host-manager页面的操做
- manager日志记录一些 manager页面的操做信息
- localhost-access 记录访问服务器的信息
- localhost 记录一些服务器自己的信息
- catalina.2019-12-16.log 记录的内容跟 catalina.out 是同样的
- 因此若是要查看最新的 catalina 日志信息
- 直接看 catalina.out 就好了
- catalina.out 记录不少信息,包括服务器运行的错误信息,网站运行的错误信息
- 因此平时查找错误,主要是看 catalina.out 日志
- 可是 catalina.out 有一个问题
- 这个文件只会不断的写入,是不会进行日志切割的
- 因此若是不处理,这个文件会无限变大
- 实际使用中,应该根据须要,按期把这个文件进行清空
- 可使用任务计划来按期清空这个文件
- 任务计划就是,系统能够在你自定义的时间内作事情
- 使用 crontab -e 回车
- 就会进入 vi 的界面
- 而后再里面写要执行的任务,写完保存退出
- 系统就会按期执行里面的内容
- 若是格式不正确,就没法保存退出,系统会提示

- 如图,这就是任务计划的格式
- 前面 五位 分别是 分时日月周 的意思
- 这里 0 3 * * * 就是天天 3点 执行的意思
- 后面3位由于不须要设置,因此就用星号 * 代替
- 设置了时间,后面就是要执行的命令

- 如图,还有不一样的写法,能够表明不一样的意义
- 好比在 时 的位置写 1,2,3 就表示天天的 1点,2点,3点执行
- 若是想每5分钟执行一次
- 能够在分的位置写 */5
- 这个写法就表示,能够整除 5 的分钟数就会执行后面的命令
- 也就至关于,每5分钟执行一次命令了
- 0 8-10 * * * 这表示 天天 8点,9点,10点执行后面的命令
- 周 的位置,表示的是星期几
- 因此能够写 1-7 表示 星期一 到 星期日
- 也能够写为 0-6 也表示 星期一 到 星期日

- 如图,这就是 每5天 清空一次 catalina.out 的任务计划
- 如图不使用任务计划,也可使用系统的日志切割功能来处理这个日志文件

- 如图,vim /etc/logrotate.d/tomcat 在这个目录内编辑一个叫作 tomcat 的空文件

- 如图,空文件内写入图中的内容,保存退出
- 这样系统的日志切割服务,就会按照文件中设置的参数对catalina.out进行日志切割
- 图中,daily 表示天天切割,size 16M 表示文件大小超过 16M 就切割日志
- 可是这两个参数同时存在的时候,以 size 为主
- 也就是说,这个文件小于 16M 的时候,次日也不会被切割
ftp服务
- ftp服务能够在两台电脑之间进行上传下载的操做
- 大公司比较少用,由于ftp协议安全性不够好
- 可是中小型公司会可能会用到,安全性要求不那么高
- 并且电脑之间传输文件也很方便
- 首先安装一个扩展的源
yum install -y epel-release
- 要先安装这个扩展源,才能安装 pure-ftpd 服务
- 而后
yum install -y pure-ftpd
- 这里使用的是 pure-ftpd 来提供 ftp 服务
- vi /etc/pure-ftpd/pure-ftpd.conf 编辑pure-ftpd 的配置文件

- 如图,配置文件里面这个 MinUID 是定义使用这个服务的用户的最小uid
- 这里设置的是 1000
- 意思就是 只有 uid >= 1000 的用户,才可使用这个ftp服务
- 小于1000的就会报错
- 出于安全的缘由,uid 小的都是系统用户,权限都比较高
- 限制uid 大于1000 能够防止权限太大的用户使用ftp服务,增长安全性

- 如图,找到 PureDB 这一行
- 把前面的井号 # 去掉,这里井号的做用是注释
- 前面有井号的行是不起做用的
- 因此把这一行前面井号去掉,让这一行产生做用
- PureDB 的做用是指定一个文件路径
- 之后用户名密码之类的信息就会被保存到这个文件里面
- 上面的mysql和postgreSQL 也能够设置保存这些信息
- 可是设置数据库太麻烦,直接用 puredb本身的文件保存就行了,这样最简单
- 而后保存退出

- 如图,建立一个用户 ftpuser
- id ftpuser 查看用户的 uid
- 能够看到是 1013 大于1000
- 这样就能够正常使用 ftp 服务,若是小于1000就不能正常使用ftp服务

- 如图,建立一个测试目录 /data/ftp/
- 使用这个目录进行文件的传输
- 而后把这个目录的全部者所属组修改成 ftpuser
- 由于原本是root建立的,可是 ftpuser要使用这个目录传输文件权限不够
- 因此修改成 ftpuser ,这样权限就够了

- 如图,使用这个命令建立一个 ftp服务的虚拟用户 user1
- user1 并非系统真实存在的用户,可是又须要系统用户权限来进行一些操做
- 因此这个 user1 须要映射到一个系统真实存在的用户上去
- ftpuser 就是系统真实存在的用户,这里把user1映射到ftpuser上去
- 这样user1的权限就等于ftpuser了,后面是指定 /data/ftp/ 目录为文件传输目录
- 意思就是 user1 使用这个目录进行文件传输
- 而后回车,下面还要输入两次自定义密码
- 这样就设置了一个ftp服务内部的 用户名跟密码了
- 可是如今这个用户名跟密码尚未被保存

- 如图,还须要使用 pure-pw mkdb 建立保存用户名密码的数据库文件
- 使用这个命令后,就会建立刚才在配置文件里面指定的路径的文件
- 也就是 /etc/purt-ftpd/pureftpd.pdb 这个文件
- 这个文件是 ftp服务本身的文件格式,没法使用 cat 查看

- 如图,使用 systemctl 启动 ftp 服务
- netstat 查看监听的端口,这里是 21 端口
- 因此系统防火墙还须要放开 21 端口,服务才能正常运做

- 如图,
firewall-cmd --add-port=21/tcp --permanent
- 开放21端口
- 而后
firewall-cmd --reload
重载配置文件
- 这样21端口就放开了
- 这样 ftp服务就能够正常运行了
测试登陆 ftp
- 如今服务器的 ftp 服务已经装好了
- 要测试这个 ftp 服务是否正常运转
- 须要下载一个ftp客户端工具
yum install -y lftp
- 咱们安装的ftp服务是服务端的
- 因此须要一个客户端才能够测试服务端的ftp是否正常
- 这个 lftp 就是一个客户端工具,能够模拟客户端与服务端进行交互

- 如图,安装 lftp以后
- 使用 lftp user1@127.0.0.1 登陆 user1
- 口令输入刚才设置的user1密码 123
- 回车进入 user1 的命令界面
- 使用 ls 命令查看默认目录里面有什么文件
- 这个默认目录就是刚才设置的 /data/ftp 目录
- 能够看到有 . 和 .. 分别表明目录自己和上一级目录
- 这样就表示 user1 目录正常

- 如图,使用 exit 退出user1用户界面
- cd /data/ftp 而后建立 1.txt 文件
- 使用 echo 输入一些数据进入这个文件

- 如图,再使用 lftp 登陆 user1 用户
- 使用 ls 查看,能够看到多了一个 1.txt文件
- 可是这个文件的全部者跟所属组是 root 用户
- pureftp 的特色,这里能够看到 ,全部者显示为 uid 数字
- 所属组则是显示为 文字,也就是具体的所属组,而不是 gid
- 这样本地命令行测试就算成功了
- 还须要进行远程测试看是否成功

- 如图,可使用 fillzilla 做为客户端进行测试
- 因此,咱们下载 客户端的版本,不要下载服务端的

- 如图,filezilla 打开的界面

- 如图,点击这里,设置链接

- 如图,这里要设置一个新站点
- 而后右边填写信息
- ip是服务器的ip地址,端口是 21
- 用户名是 user1 密码是 123

- 如图,ftp 分为主动和被动模式,有时候 默认的模式可能没法链接
- 这里选择 主动模式

- 如图,选择链接,能够看到链接成功
- 服务器目录里面的文件 1.txt 也显示出来了

- 如图,左边选择一个目录 desktop 也就是桌面
- 右边双击服务器目录里面的 1.txt
- 这样 1.txt 文件就被下载回来了
- 如图,能够看到桌面文件已经有 1.txt了
- 一样的,在左边的文件上面双击,就能够把文件上传到服务器上的目录里

- 如图,若是出现这个错误

- 要勾选这里限制并发链接数
- 端口那里再输入 21
- 还有另一种传输协议叫作 SFTP
- 这个协议是使用 ssh 协议进行文件的传输,而不是 ftp协议
- 因此使用 SFTP 协议传输文件使用的端口是 ssh 服务的 22 端口
- filezilla 和 xftp 这两个软件均可以使用 SFTP 协议传输文件
- filezilla 是开源免费的,xftp 和 xshell 是同一个公司的,须要付费使用

- 如图,新建一个站点 tom02
- 右边协议,选择 SFTP 协议
- 主机是服务器 ip ,端口使用 22
- 下面用户名是 root ,密码就是 root 密码
- 而后链接

- 如图,上面方框能够输入任意路径
- 下面能够显示访问的目录
- 由于是 root 身份登陆的,因此能够访问服务器内全部的目录
- 权限很大,因此很是不安全,好处是比较方便
- 除了使用用户名密码登陆外,也可使用密钥登陆
- 设置会麻烦一些