参考:https://blog.csdn.net/qiushi_1990/article/details/79915880
https://blog.csdn.net/jackymvc/article/details/81077885
准备工作:
- 阿里云ecs一个
- 域名一个
- SSL证书一份(用来支持https)
- 本地打包好的springboot项目。(jar包)
步骤1:阿里云安全规则配置,配置访问的端口:
步骤2:准备域名
2.1域名阿里云上买的,并设置好解析(阿里云上有详细教程)
步骤3:下载对应服务器的SSL证书
步骤4:spring boot 2.X 打Jar前,配置:
import org.apache.catalina.connector.Connector;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class TestSslApplication {
public static void main(String[] args) {
SpringApplication.run(TestSslApplication.class, args);
}
//下面是2.0的配置,1.x请搜索对应的设置
@Bean
public ServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addAdditionalTomcatConnectors(createHTTPConnector());
return tomcat;
}
private Connector createHTTPConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
//同时启用http(8080)、https(8443)两个端口
connector.setScheme("http");
connector.setSecure(false);
connector.setPort(8080);
connector.setRedirectPort(8443);
return connector;
}
}
application.yml中配置:(步骤3中下载下来的)
server:
port: 8443 #访问端口号
ssl:
key-store: 证书的名字.pfx
key-store-password: 证书密码
步骤5:通过工具把Jar包和SSL证书上传阿里云服务器,并通过脚本启动Jar包
5.1 SSL证书上传根目录下
5.2 上传Jar包
5.3 创建脚本
通过创建stop.sh , start.sh ,run.sh这三个脚本文件来实现后台长久运行springboot
这里我把运行的renren-fast.jar ,start .sh,stop.sh ,run.sh都放在home下的jar目录下
1,创建stop.sh
vim stop.sh 创建文件然后把下面内容复制进去,一定要把renren-fast.jar替换成你的jar
#!/bin/bash
PID=$(ps -ef | grep renren-fast.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
echo Application is already stopped
else
echo kill $PID
kill $PID
fi
2,创建start.sh,这里我们用80端口,这样可以直接通过ip访问,不用再输端口了
vim start.sh 输入这个命令后然后把下面的内容复制进去
#!/bin/bash
nohup java -jar renren-fast.jar --server.port=80 &
3,创建run.sh
整合了关闭和启动的脚本:run.sh,由于会先执行关闭应用,然后再启动应用,这样不会引起端口冲突等问题,适合在持续集成系统中进行反复调用。
把下面内容复制进去,一定要注意复制时不能少东西
#!/bin/bash
echo stop application
source stop.sh
echo start application
source start.sh
4,start .sh,stop.sh ,run.sh都创建后
./run.sh 运行run.sh脚本
如果遇到没有权限运行的问题,就在run.sh所在目录下执行
chmod u+x *.sh 这样就ok了。
执行完以后,我们可以去nohup.out文件中查看启动的log
cat nohup.out 这个命令可以查看jar启动的log
5.4 启动
以上项目启动完成