ubuntu下使用tomcat的一个逆天问题,路过大神指点一下

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ubuntu下使用tomcat的一个逆天问题,路过大神指点一下相关的知识,希望对你有一定的参考价值。

在tomcat的webapps目录下建立一个文件夹,比如test,然后里面弄WEB-INF,web.xml,打开tomcat是可以访问到的,但是在WEB-INF里建立classes目录后,这个就访问不到了,!以前有个项目可以打开,但是刷新有时候有,有时候没有!请问有人碰到过么,怎么解决
还有,大家谁试过,tomcat后台能输出到shell中么

参考技术A WEB-INF文件夹的安全性是最高的,要想访问此文件夹的程序需要在WEB-INF里的web.xml里进行映射配置。
如:WEB-INF文件夹里的hello.jsp文件如下配置:(放在</web-app>之前)

<servlet>
<servlet-name>he</servlet-name>
<jsp-file>/WEB-INF/hello.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>he</servlet-name>
<url-pattern>/hello.jsp</url-pattern>
</servlet-mapping>

之后保存,重启tomcat,在浏览器地址栏输入localhost:端口号/你的目录/hello.jsp 就可以访问到了。
参考技术B more /usr/local/tomcat/logs/catalina.out
看日志追问

话说,里面东西好多,看不懂!现在这个东西又能用了,我把root里面的东西都复制过去,然后把没用的删除了,很逆天的可以了,而且连原来进不去的都能用了又。。。。

追答

估计是你创建的目录结构不对吧

追问

目录结构是对的,这个竟然也是看人品。。。分给你吧

本回答被提问者采纳

阿里云上,Ubuntu下配置Nginx,在tomcat中加了https协议就不可以了

问题

  阿里云上,Ubuntu服务器,本来部署的是tomcat,并且使用了https 协议。后来为了静态资源分离集成了 nginx,nginx代理跳转到 tomcat。刚开始直接访问http 网址发现,图片会经过nginx 的代码。但是访问https 网址发现,图片还是只走了apache 。

 

分析

  因为tomcat 配置了ssl证书,而非 nginx配置ssl。所以当浏览器访问域名的时候,域名解析的时候,直接跳转到https服务了,并没有经过nginx的代理。

  tomcat的端口是8080, nginx的端口是80,单单这一点似乎不影响通过域名访问,奇怪。看来如果域名解析使用了ssl证书,使用到证书的服务器即使端口号不是80,也能够直接通过地址访问,不要加端口号。

  下图是域名解析列表,第一条记录就是申请ssl证书时使用到的。

 

解决办法

1、删除tomcat上配置的ssl 证书,给nginx 添加ssl证书,重新安装部署

可以参看阿里云的文档:

SSL数字证书Tomcat配置部署指导
  https://help.aliyun.com/video_detail/54217.html

SSL数字证书Nginx配置部署指导
  nginx安装证书:https://help.aliyun.com/video_detail/54216.html

具体的操作是在控制台-安全(云盾)-CA证书服务中


2、此时直接使用http 访问会报“400 Bad Request”错

此时需要 nginx 将http请求转发到https请求

所以还需添加配置:

  #让http请求重定向到https请求
  error_page 497 https://$host$uri?$args;

 

原创文章,欢迎转载,转载请注明出处!

以上是关于ubuntu下使用tomcat的一个逆天问题,路过大神指点一下的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu下安装tomcat的问题

tomcat在ubuntu14下使用80端口

Ubuntu16.04下Apache和tomcat服务器的整合

ubuntu下安装Java和tomcat

ubuntu麒麟系统tomcat中文乱码怎么办?

Ubuntu安装tomcat