如何让springboot打包的项目部署在阿里云上使用https和http方式访问

前言

问题描述:怎么让springboot部署在服务器上使用https协议方式访问我们的接口或者域名,目的是某些平台请求的是https协议,而不是https

部署环境:阿里云 centos7服务器,springboot项目打包的jar,nginx反向代理

注:部署前需要解决几个问题

1)需要配置springboot项目支持https协议,

2)需要配置阿里云的安全组,放行相关的端口,如本文中开放的8080和8081端口

3)配置nginx的nginx.conf文件做好反向代理

4)申请ssl文件,至于怎么申请ssl文件自行百度(注:因为springboot启动项目的时候使用的是tomcat,我们部署的时候需要nginx做好反向代理,所以这里面我们需要两个类型的ssl文件,即nginx下面的xxx.pem/xxx.key和tomcat下面的xxx.pfx/xxx.txt文件,xxx.txt里面保存的是密码)

(图1)

(图2)

5)把申请的ssl里面的pfx文件方向项目的根目录下,如下图

步骤:

1.配置本地项目xxx.yml文件,如下图

相关的代码如下

server:  servlet:    #配置访问的项目路径    context-path: /    #配置HTTPS访问端口  port: 8443  ssl:    enabled: true    key-store: xxx.pfx    key-store-password: 123456#配置http访问端口http:  port: 8080
2.配置启动项,即在启动项里面增加如下代码,这里可以配置通知支持http和https
import org.apache.catalina.connector.Connector;import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.builder.SpringApplicationBuilder;import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;import org.springframework.boot.web.servlet.server.ServletWebServerFactory;import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;import org.springframework.context.annotation.Bean;

@SpringBootApplication@MapperScan(value = "xxx.mapper")public class SitecloudApplication  {    public static void main(String[] args) {        SpringApplication.run(SitecloudApplication.class, args);    }    // springboot2 写法    @Bean    public ServletWebServerFactory servletContainer() {        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();        tomcat.addAdditionalTomcatConnectors(createStandardConnector()); // 添加http        return tomcat;    }

    // 配置http    private Connector createStandardConnector() {        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");        connector.setPort(8080);//nginx需要代理的端口,这里我直接写固定了,这里的端口是yml文件中的8080端口,你可以直接取yml文件的端口        return connector;    }

}3.配置阿里云的安全组,放行相关的端口

4.配置nginx

进入你安装的nginx目录里面xxx/conf/nginx.conf文件中,配置如下

#https支持
server {
listen 443 ssl;
server_name 你的域名不需要在前面加http;
ssl on;
ssl_certificate /ssl/xxx.pem;
ssl_certificate_key /ssl/xxx.key;

ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;

location /images/{
root /usr/;
autoindex on;
}

location /app {
root html;
index index.html index.htm;
proxy_pass http://ip:8080;
}
}

server {
listen 80;
server_name 你的域名不需要在前面加http;

rewrite ^(.*)$ https://$host$1 permanent;
}

}

5.springboot本地打成xxx.jar文件,放入在linux中你新建的任何文件夹中

6.把你申请的ssl的xxx.pfx,xxx.pem,xxx.key文件放在和你的jar一个目录的地方

7.运行java -jar xxx.jar

8.在nginx的sbin文件夹下启动nginx

./nginx -s reload

./nginx -t

10.访问项目,直接用域名访问的方式如https://xxx.com:8443

访问http:xxx.8080

至此,项目运行成功,转载请留下出处

原文地址:https://www.cnblogs.com/jfaith/p/11144838.html

时间: 2024-10-08 03:04:31

如何让springboot打包的项目部署在阿里云上使用https和http方式访问的相关文章

如何把php项目部署到阿里云服务器window server2012__含公网ip访问时jquery/ajax失效解决办法

记一次蛋疼的折腾. 弄了一晚上最后发觉是360浏览器的问题,换个浏览器就好了.垃圾360用什么IE7文档模式.导致界面和功能失效. 建议大家测试的时候用firefox或者chrome. 项目部署到服务器后360浏览器兼容模式显示错误的解决办法:http://www.cnblogs.com/zj917/p/6697724.html -------------------------------------------------- 正文: 上篇博客说临时起意做了个有意思的聊天版,就想把它部署到阿里

javaWeb项目部署到阿里云服务器步骤

记录web项目部署到阿里云服务器步骤 (使用 web项目.阿里云服务器.Xftp.Xshell),敬请参考和指正 1.将要部署的项目打包成WAR文件格式,可以在MyEclipse.Eclipse都可以完成打包,如下图: 2.安装Xshell和Xftp两种软件 简单介绍下这两种软件作用(详情请百度相关文档) Xshell:通过网络连接到远程服务器主机. Xftp:能在Linux.Unix和Windows之间互传文件. 3.通过Xshell连接远程主机,如下图    4.创建会话完成,点击连接,显示

将web项目部署到阿里云服务器上

将web项目部署到阿里云服务器(ubantu14.0.14)上的一般流程: 1.下载putty.在host name栏输入远程服务器ip地址,端口默认为22.阿里云服务器可以通过控制台查看公网ip地址,点击open进行连接 2.输入用户名和密码后进入dos界面,用apt-get update 命令更新,否则很多东西安装不了 3.安装vsftpd服务,通过命令apt-get vsftpd安装,注意 这里的ftp和之后的Tomcat.MySQL数据库端口在阿里云服务器中是默认关闭的,需要进入阿里云控

Java Web项目部署到阿里云服务器(ECS)

本篇随笔只是记录博主第一次将自己的Java项目部署到阿里云服务器的大致过程,具体细节还请参考别的博文. 一.项目介绍 我做的项目是利用maven项目构建工具进行搭建基于SSM框架的代码共享管理系统,主要功能是发布相关博文,对博文进行CRUD操作...所以说也算是个入门的SSM项目. 二.域名以及ECS 由于想要将自己的项目发布到公网上,所以首先想到的是去购买一个域名,于是到了阿里云计算官网上购买了万网的域名,过程比较简单:首先注册阿里云账号并进行相关的实名认证,在控制台中的信息模板进行实名认证,

flask项目部署到阿里云 ubuntu16.04

title: flask项目部署到阿里云 ubuntu16.04 date: 2018.3.6 项目地址: 我的博客 部署思路参考: Flask Web开发>的个人部署版本,包含学习笔记. 开始之前 购买阿里云ecs一周版, 参考 购买万网域名(也是阿里家的) 过程: # apt update # apt upgrade # apt install python-virtualenv # apt install nginx git 下载源码: # git clone 我的博客源码地址 &&a

关于在linux下安装git,以及在idea上将项目部署到码云上

GIT 基于对linux感兴趣,并且也考虑到以后从事开发后也会用到linux,着实在闲余之际学学linux.最近在用VM虚拟机环境下学做一个项目,在git上卡了一点时间,但同时也收获  了不少,下面写写自己的心得. 一.GIT简介 Git(读音为/g?t/.)是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理.Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的 一 个开放源码的版本控制软件. Torvalds 开始着手开发 Git

把web项目部署到阿里云linux服务器上

最近弄了个试用阿里云服务器倒腾了半天终于部署好,分享一下. 1.登入阿里云打开你申请的是云服务器的实例: 点击重置密码---重置密码后重启服务器才能生效(一般需要重置密码.这里设置的密码是使用xhell等工具链接的密码,用户名为root) 2.点击更多--连接帮助(查看连接的IP)  3.记下ip(图中的实例后面的ip)和登入名root  4.我这连接使用xshell,其它的工具大同小异,大家自行下载  5.点击Xhell的new 新建连接  6.在host框填入第3步记下的ip其它不变  7.

将javaweb项目部署到阿里云服务器

主要步骤:1. 购买阿里云服务器2. 远程连接3. 在云服务器上配javaweb环境:jdk,tomcat,MySQL4. 将项目的war文件放到Tomcat下关于云服务器ECS:如果还想在买服务器之后,再买域名.买的服务器时间就要至少三个月,因为剩余时间 3 个月及以上的实例才能申请备案服务号.一.阿里云服务器1. 我买的学生优惠版服务器,先登录阿里云官网,进行学生身份认证.因为支付宝之前已经学生认证过了,所以可以一键认证,省了很多步骤.2. 下载阿里云app,在学生专区购买云服务器.先选择操

Django项目部署(阿里云)(2)--扩展

新博客地址:http://muker.net/django-server-two.html 前面的只是最简单的部署,真实情况总是更复杂一点实际流程大概是这么操作的(我这种菜鸟的想法):本地写代码->git托管代码->服务器pull(合并更新)托管的代码这样就能实现服务器上的实时预览了(如果你有这种需求的话),当然如果只是单人开发的话是不必这么干的,毕竟本地也可以预览首先服务器安装git,生成公钥然后在托管代码的网站添加公钥生成公钥: ssh-keygen 测试连通性: ssh -T git@g