发表于: 2018-10-14 17:34:52
1 543
task2的第10天
这几天身体有点不舒服,效率也比较低!配置服务器常常看文档就是半天!计划延期多!有点脱离任务,部署尝试了多种方式,采坑不少。
主要集中在尽量不修改原配置!或者说可以修改通用配置,但涉及到具体web项目路径,减少修改原配置文件,考虑新加额外的配置或者通过命令来部署,如果是复制到对应webapp目录这种方式,基本不考虑,同时可以直接 ip+端口的方式访问首页,日志就是顺带搞搞。
但是呢!基本结束后,发现方向有点偏离!我们应该做的是:web项目应该在一种固定的目录,对应的就是svn/git目录,直接在服务器打包或者上传包,tocmat.jetty或者resin都应该从这个目录发布,使用Niginx来决定用哪个web服务器以及访问路径,同类型的web服务器也可以配置多个-----目前我的理解
今天完成的事情
1.解决昨天resin部署项目500错误
2.resin的自动部署
3.linux中top,cat,netstat -ntlp 简单使用
1.解决昨天resin部署项目500错误
具体信息:
本身这个web.xml是没有错的,可以在tomcat8,jetty9运行
通过查找资料,翻阅官方说明,截止2018.10.14,resin最新版默认最高支持java EE6,而java EE6对应servlet版本是3.0
servlet改为3.0版本
补充说明:java EE 和Servlet的对应关系
测试通过
2.resin的自动部署
(1)基于本地命令行
(2) 基于远程命令行
(3)webapps目录部署
上面是resin4.0 文档:https://caucho.com/resin-4.0/admin/starting-resin.xtp
实际测试及部分采坑:
(4)如果采用上传压缩包,解压安装(-------与官网安装过程不同,官网涉及到make ,install等命令)
结果就是resin/bin 目录下:不存在resinctl 命令
然而 实际上有个resintcl.in的脚本
cat resinctl.in
测试之后:resinctl.in 和resin.sh 功能基本一致
所以将 resinctl 换成 resin.sh来执行就ok! 这个很坑,我以为resin.sh就基本的启动,停止,重新启动,最多加个部署
resin.sh 参数有点多,请自行尝试!
(5)配置好用户,密码-----基本如下:
(6)采用远程命令行部署,访问路径为 ip+端口/
(7)ip+端口/resin-admin : -----访问浏览器管理界面
遇到的问题:
浏览器部署显示:
大概是要开启ssl,可能还要配个证书,暂时不搞这个!
就是在这个界面发现resin 和resin-pro 差别好大,一半以上功能需要resin-pro,搞的想装resin-pro
(8)关于resin的访问日志
目前还没有正式配置
resin 提供的日志相关配置,
注:jetty也差不多!一块看看
logs/debug
写完这个-------我想起了是自己配置输出到项目目录下的logs,---应该统一为log目录的
log/access.log
3.linux命令
cat aceess.log ---查看输出信息!
netstat -ntlp 查看当前使用的端口
----------------------------
实际是忘了具体使用过哪些端口!查完后改了部分
top
明天计划的事情
1.配置Nginx----优先
2.配置aceess.log----tomcat基本实现,待优化,jetty,resin待配置
3.写脚本,找出自己想要的日志信息!统计请求信息之类的----有时间的话
遇到的问题
1. 服务器 删除整个resin目录(rm -rf resin),重新解压,启动异常
尝试1:启动 watchdog
进入resin目录,执行 java -jar lib/resin.jar watchdog
重新启动 resin:
com.caucho.bam.InternalServerException: BamError[type=cancel,group=internal-server-error,text=com.caucho.bam.TimeoutException: QueryItem[1,QueryFutureImpl[to=null,from=HmtpClient@http://127.0.0.1:6600/hmtp,payload=NonceQuery[,1539501341631]]]]
尝试2;top 参看进程,kill 进程
解决方法:reboot------重启服务器
现在整个bug无法复现,简单总结:
1.删除软件前:先停止服务,确认停止后删除
2.top 命令多熟悉, kill 涉及到父进程和子进程的关系,这个目前还不太清楚!主要集中在配置jetty
收获
1.resin的自动部署方式
(1)基于本地命令行
(2)基于远程命令行
(3)基于webapps目录
(4)基于resin.xml----(目前简单了解,实际未测试)
2.关于JavaSE,JavaEE,JavaME的区别
JavaME则是针对移动和嵌入式设备的如:手机,电视,打印机等是用的运行程序
3.Sevlet.JavaEE ,java对应版本,以及web服务器的对应支持版本
目前没有找到比较全面的resin历史版本对于Sevletd的支持
tomcat: https://tomcat.apache.org/whichversion.html
jetty: https://www.eclipse.org/jetty/about.html
评论