spring boot (2):spring boot 打包tomcat、tomcat 部署多个项目、服务器部署项目SSL 设置(阿里云)
一、spring boot 内置tomcat配置https:
关于自签名证书可以看下上一篇 spring boot1
更详细的可以看转载
https://www.jianshu.com/p/8d4aba3b972d
二、spring boot 打包war部署tomcat:
maven构建的项目的同学可以看下这https://blog.csdn.net/u013279563/article/details/81144154
个人是用gradle所以详细点的说明一下gradle的打包过程,如下
1.添加war 插件,在build.gradle 里添加:
apply plugin: 'war'
2.打包的时候,因为spring boot 在起步依赖里内嵌tomcat的,所以这边打包的时候需要排除一下
tips(引用自奈文杰):
War插件 添加了两个依赖配置项providedCompile 和 providedRuntime,这两个配置项分别和compile和runtime有相同的作用域,只是不将依赖打包到war文件
可以在idea右边的gralde界面中点击Gradle=>项目=>Task=>build=>点击build就可打包成war包,成功的文件夹在 build-> libs下面
添加依赖->
dependencies {
compile("org.springframework.boot:spring-boot-starter-web")
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
}
3.启动类里需要对servlet初始化(不加不行!!!)
package com.test;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer; @SpringBootApplication
public class Application extends SpringBootServletInitializer { protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
} public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class, args);
}
}
在cmd到项目目录下执行 gradle war
或者
打包后在libs目录下:
三、tomcat部署多个项目
1.在conf/server.xml 中新增一个 Service节点(Catalina),新增~新增~
定义红圈圈的部分,就当是一个新的service 来定义就好,域名、app目录、端口都可以不同。
tips:appBase指向的目录和service节点的name属性指向的目录需要新建,如下图
你多个项目丢在不同的webapps 文件夹中,启动tomcat的start.bat /start.sh
四、tomcat配置SSL
首先下载证书(这里使用的时候阿里提供的免费pfx)
下载后因为是免费的证书,只有2个文件一个是pfx后缀的证书文件,另一个是password的文本文件,证书的秘钥在这个文本文件中
在conf/server.xml 中配置安全连接节点
如下:
<Connector port="443" protocol="HTTP/1.1"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="cert/XXX.pfx"
keystoreType="PKCS12"
keystorePass="XXXXXX"
clientAuth="false"
SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
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"/>
上面绿色加粗的地方需要自己修改:
port 为指定的端口,443 为https 的默认端口,当然你也可以设置为其他。
keystoreFile 为指定的证书文件,指向的tomcat目录下的相对路径,cert为新建的文件夹,如图
keystorePass 为 password 中的秘钥(注意阿里每次新下载的password都不同)
其他的属性可以不做修改。
注意:在增加新的connector 节点时(https)不需要删除原有service中的connector,对于tomcat来说,只不过是多了一个端口去访问应用罢了,所以如果你的http默认端口为80或8080之类的,是不需要删除的,当然,如果你只想保留443 也可以删除。
六、http自动转向https
http默认端口是80,https默认端口是443,所以如果我想要http自动跳转至https时就不要删除上面的注意里说的connector了。
http 配置如下:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
redirectPort 修改为443 是为了对应第五步中的https 的port 443
在conf/web.xml 中web-app节点中增加security-constraint 节点(就是上一篇中在通过java配置的安全限制配置,观察一下键值一致)
<security-constraint> <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>
启动tomcat,输入http:// XXXXXXX 自动重定向至https~
下面是相关链接:
http 重定向 到https
https://blog.csdn.net/zhangxing52077/article/details/72827770
配置SSL 安全证书
https://blog.csdn.net/gary_yan/article/details/77981303
tip:windows server 显示文件后缀(...)
删除(管理员权限的文件)
https://jingyan.baidu.com/article/c910274be49569cd361d2db0.html
spring boot (2):spring boot 打包tomcat、tomcat 部署多个项目、服务器部署项目SSL 设置(阿里云)的更多相关文章
- [Java] Spring boot 的maven设置阿里云仓库
Spring boot 的maven设置阿里云仓库 打开根目录下的 pom.xml 文件,在对应为止出加入如下 红色 代码: <build> <plugins> <plu ...
- spring boot 的maven设置阿里云仓库
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> ...
- Spring框架学习笔记(6)——阿里云服务器部署Spring Boot项目(jar包)
最近接外包,需要部署服务器,便是参考了网上的几篇博文,成功在阿里云服务器成功部署了Spring Boot项目,特记下本篇笔记 Spring Boot项目打包 这里说一下部署的一些问题 1.mysql驱 ...
- 技术杂记之:在阿里云centos7上部署JDK MYSQL TOMCAT
今日小编闲来无事,乘着公司新项目即将上线之际,在阿里云上整了一台centos作为测试机.原本以为一个小时搞定,结果还是花了一点小小时间.不管怎么说,记录下来,给各位小白当成课后甜点吧. 价格 先上价格 ...
- 阿里云服务器CentOS6.9安装Tomcat
上篇讲了CentOS6.9安装jdk,这篇来讲Tomcat的安装,本来准备使用yum命令安装的,但是通过 yum search tomcat 发现只有tomcat6,所以就在官网下了一个tomcat8 ...
- 阿里云配置tomcat https
阿里云申请免费的SSL证书和配置https,可参考该篇博文:https://blog.csdn.net/baidu_19473529/article/details/70037976 虽然有现成的,不 ...
- 阿里云服务器连接以及centos 搭建 web java环境(linux java部署 tomcat部署)
版权声明:本文为博主原创文章,未经博主允许不得转载. 最近弄了个试用阿里云服务器倒腾了半天终于部署好,分享一下. 1.登入阿里云打开你申请的是云服务器的实例: 点击重置密码---重置密码后重启服务器才 ...
- window10安装nginx及请求转发到tomcat服务器访问项目及开机自启
一.安装ngnix 1. 到nginx官网上下载相应的安装包,http://nginx.org/en/download.html: 下载进行解压,将解压后的文件放到自己心仪的目录下,我的解压文件放在 ...
- 精尽Spring Boot源码分析 - 支持外部 Tomcat 容器的实现
该系列文章是笔者在学习 Spring Boot 过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring Boot 源码分析 GitHub 地址 进行阅读 Sprin ...
- Jrebel热部署配置完整教程(IntelliJ IDEA、Jrebel、spring boot、springboot、eclipse、Tomcat)
标签:IntelliJ IDEA.Jrebel.spring boot.springboot.eclipse.Tomcat1.安装插件并激活插件安装参考:http://blog.csdn.net/u0 ...
随机推荐
- python pickle模块的使用/将python数据对象序列化保存到文件中
# Python 使用pickle/cPickle模块进行数据的序列化 """Python序列化的概念很简单.内存里面有一个数据结构, 你希望将它保存下来,重用,或者发送 ...
- 聚簇索引(clustered index )和非聚簇索引(secondary index)的区别
这两个名字虽然都叫做索引,但这并不是一种单独的索引类型,而是一种数据存储方式.对于聚簇索引存储来说,行数据和主键B+树存储在一起,辅助键B+树只存储辅助键和主键,主键和非主键B+树几乎是两种类型的树. ...
- 【xsy1300】 原题的旅行 最短路+倍增
题目大意:有一个$n$个点,$m$条边的无向图,玩家走过第$i$条边,血槽中的血会下降$v_i$点,如果不足$v_i$点,这人会当场去世. 这$n$个点中,有若干个是关键点,在这些关键点可以将血槽补满 ...
- golang中GOPATH的简单理解
1.为什么要配置GOPATH 配置GOPATH的用意是为了方便项目的部署和构建,以及可以直接使用go get 命令下载第三方的包到自己的项目的src下和相关的执行文件bin目录,和中间文件pkg sr ...
- POJ 2909
#include<iostream> #include<stdio.h> #define M 35000 #include<math.h> #define N 38 ...
- volatile 关键字了解与使用
前言 不管是在面试还是实际开发中 volatile 都是一个应该掌握的技能. 首先来看看为什么会出现这个关键字. 内存可见性 由于 Java 内存模型(JMM)规定,所有的变量都存放在主内存中,而每个 ...
- Google Optimization Tools实现加工车间任务规划【Python版】
上一篇介绍了<使用.NET Core与Google Optimization Tools实现加工车间任务规划>,这次将Google官方文档python实现的版本的完整源码献出来,以满足喜爱 ...
- GMap.NET实现电子围栏功能(WPF版)
前言 GMap.NET是一个强大.免费.跨平台.开源的.NET控件.分为WPF和winform版.GMap.NET的基本知识不做过多介绍,本文主要介绍如何使用该控件实现电子围栏功能. 电子围栏主要有两 ...
- 829. 连续整数求和-leetcode
题目:给定一个正整数 N,试求有多少组连续正整数满足所有数字之和为 N? 示例 1: 输入: 5 输出: 2 解释: 5 = 5 = 2 + 3,共有两组连续整数([5],[2,3])求和后为 5. ...
- SQL 必知必会·笔记<2>检索和排序数据
1.检索数据 使用SELECT 检索表数据,必须至少给出两条信息——想选择什么, 以及从什么地方选择. 检索不同的值 使用DISTINCT关键字,检索不同的值,使用示例: SELECT DISTINC ...