tomcat的管理功能,tomcat的日志,ftp服务,测试登录ftp

跟風遠走 提交于 2019-12-17 00:41:15

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

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 身份登录的,所以可以访问服务器内所有的目录
  • 权限很大,所以非常不安全,好处是比较方便
  • 除了使用用户名密码登录外,也可以使用密钥登录
  • 设置会麻烦一些
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!