tomcat8在Ubuntu中的常用目录结构
- /etc/tomcat8:配置文件目录,主要包含server.xml、catalina.properties、context.xml、logging.properties、tomcat-users.xml、web.xml。
- /var/lib/tomcat8/webapps:webapps目录,存放tomcat发布的网页、项目。
- /var/log/tomcat8:日志目录,存放tomcat运行时的日志文件。
使用HTTP 80端口、HTTPS 443端口
在<Service name="Catalina">结构下,将8080修改为80,8443修改为443并添加证书文件和秘密。
如果修改后还是无法启用HTTPS服务:
- 检查服务器防火墙是否开启443端口访问权限:查看云服务器防火墙策略、查看iptable和ufw配置
- 检查Tomcat是否有权限使用443端口:使用sudo service tomcat8 start命令启动tomcat
<!-- 8080 修改为80 --> <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="443" /> <!-- 8443 修改为443 --> <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" keystoreFile="证书文件" keystorePass="证书密码" ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256" clientAuth="false" sslProtocol="TLS" />
配置80端口自动跳转到443端口:
- 在server.xml文件中,在80端口的Connector中修改:redirectPort="443(如上述代码所示)
- 在web.xml文件中,在</welcome-file-list>后添加如下字段:
<security-constraint> <!-- Authorization setting for SSL --> <web-resource-collection > <web-resource-name >SSL</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>
IDEA发布到服务器tomcat
- 新建运行配置时,选择Tomcat Server中的Remote
- 修改Tomcat Server Setting
修改Tomcat Server Setting - 添加Host设置
添加Host设置 - 添加Deployment设置
添加Deployment设置
IDEA发布Spring Boot项目到服务器Tomcat时无资源文件导致网页404
原因
Spring Boot中发布到外部Tomcat容器所需的操作和配置与传统J2EE不同:
Spring Boot中可以通过@SpringBootApplication注解使用jar包部署运行,且项目结构中没有WEB-INF等常见于传统J2EE开发中的目录,项目的静态HTML、JS等资源在src\main\resources\static下,需要在pom文件中添加以下依赖后用于支持在外部tomcat中运行:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
现象
在网页中访问相关页面或资源时会404。
检查打包发布的文件时,并没有发现HTML等资源文件,只有class、jar这些代码文件。
解决
在项目结构中添加tomcat相关的依赖:
添加tomcat依赖