【腾讯云】springboot项目申请域名+ssl并解析到虚拟机Tomcat

        作为一个小白,花了很长时间百度服务器各种部署的问题,写一篇帖子来记录一下把本地写的springboot web服务部署到虚拟机上,并且在腾讯云花了1块大洋获得了1年域名有效期,并且申请了1个免费的ssl证书。
        欢迎各位大佬批评指正。

Springboot项目打包

1.代码修改

        首先更改打包方式,在pom文件里增加packaging

<groupId>com.summer</groupId>
    <artifactId>blog</artifactId>
    <version>1.0</version>
    <name>blog</name>
    <packaging>war</packaging>
    <description>Demo project for Spring Boot</description>

        然后继承SpringBootServletInitializer 并且重写configure如下

@SpringBootApplication
@MapperScan("com.summer.blog.dao")
public class TestApplication extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(TestApplication.class);
    }

}

2.本地IDEA打包

        本地IDEA打包的话,直接如下输入命令

mvn package -Dmaven.test.skip=true

        渣渣楼主本地很慢很慢,然后最后提示有东西没拉下来,于是渣渣楼主只好去服务器打包。
在这里插入图片描述

3.服务器打包

        渣渣楼主本地打包很慢很慢,于是百度去服务器打包。
        服务器需要安装gitmaven,因为楼主用的是centos7,所以直接yum安装了,这个可以百度。
        然后进入项目目录,git把代码拉下来,然后mvn打包

[root@VM_0_4_centos blog]# git pull
[root@VM_0_4_centos blog]# mvn package -Dmaven.test.skip=true

服务器部署

        服务器上首先要安装Tomcat,这个可以直接去问度娘或者谷歌。然后把本地打的war包或者服务器打的war包放到Tomcat目录下的webapps文件夹里,Tomcat会自动解压,这样的话访问 http://ip:8080+项目名+/ 可以访问到你的项目了,如果到这里的话,那么你的服务器部署已经成功了。
        这边记录一些其他的:
        1.把上面的url里面的项目名去掉,直接映射到项目,即     http://ip:8080+/     这样的话可以,如下把原来的war包重命名为ROOT.war,并且覆盖掉原来的。

[root@VM_0_4_centos work]# cd tomcat/apache-tomcat-9.0.20/webapps/
[root@VM_0_4_centos webapps]# ll
total 69784
drwxr-x--- 14 root root     4096 Jun  2 15:27 docs
drwxr-x---  6 root root     4096 Jun  2 15:27 examples
drwxr-x---  5 root root     4096 Jun  2 19:37 host-manager
drwxr-x---  5 root root     4096 Jun  2 15:27 manager
drwxr-x---  4 root root     4096 Jun  3 11:47 ROOT
-rw-r--r--  1 root root 71356681 Jun  3 11:46 ROOT.war

        2.部署有的时候发现 ./shutdown 命令关掉Tomcat时候,有的时候进程并没有全部关掉,导致我的虚拟机内存飙升,最后kill -9 强制关关关。

腾讯云购买域名

        我不是腾讯派来的!
        我不是腾讯派来的!
        我不是腾讯派来的!

        登录腾讯云之后,步骤如下图所示
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

        然后吧啦吧啦就是按操作申请下来。
        申请下来之后,在腾讯云的平台配置解析,DNS,还有实名认证等,这个就直接在页面上操作。

免费申请ssl

        还是这个平台,然后点ssl证书。
在这里插入图片描述
在这里插入图片描述
        申请的时候按操作来就好了,值得注意的一点是,这个ssl不是全域名通用哦,意思是二级域名要单独申请,审核效率还蛮快的,晚上9点申请,9点半左右就通过了。

        然后把证书下载下来备用。
在这里插入图片描述

nginx配置解析

1.nginx下载安装

        这真的是一个很苦逼的活,要下载好多好多好多东西,参考博客  nginx步骤

步骤
         首先,安装一大堆依赖

yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

         接着,解压

wget http://nginx.org/download/nginx-1.14.2.tar.gz
tar -zxvf  nginx-1.14.2.tar.gz

         接下来这一步很重要,因为要配置ssl

[root@VM_0_4_centos nginx]# cd nginx-1.14.2/
[root@VM_0_4_centos nginx-1.14.2]# ./configure --with-http_ssl_module
[root@VM_0_4_centos nginx-1.14.2]# make
[root@VM_0_4_centos nginx-1.14.2]# make install

         安装完了应该有四个文件夹,因为我运行了,所以多出来几个。

[root@VM_0_4_centos nginx]# cd /usr/local/nginx/
[root@VM_0_4_centos nginx]# 
[root@VM_0_4_centos nginx]# ll
total 36
drwx------ 2 nobody root 4096 Jun  3 12:05 client_body_temp
drwxr-xr-x 2 root   root 4096 Jun  3 09:45 conf
drwx------ 2 nobody root 4096 Jun  3 09:45 fastcgi_temp
drwxr-xr-x 2 root   root 4096 Jun  3 09:33 html
drwxr-xr-x 2 root   root 4096 Jun  3 09:45 logs
drwx------ 8 nobody root 4096 Jun  3 11:49 proxy_temp
drwxr-xr-x 2 root   root 4096 Jun  3 09:33 sbin
drwx------ 2 nobody root 4096 Jun  3 09:45 scgi_temp
drwx------ 2 nobody root 4096 Jun  3 09:45 uwsgi_temp

         到这里,nginx的安装就结束了,接下来要配置nginx解析。
         上传你下载的ssl证书,证书下载下来有一个nginx的文件夹,里面有 .crt 和.key文件,传到下面这个文件夹

[root@VM_0_4_centos nginx]# cd conf/

         接下来打开文件nginx.conf

vim nginx.conf

         增加以下内容,这就是你要配置的反向代理。腾讯云官方的配置文档
         要改四个的地方已经标注出来了

server {
         listen 443;
         server_name xxx.xxx.xxx; #填写绑定证书的域名 要改的地方!
         ssl on;
         ssl_certificate 1.xxxxxxxx.crt; #填写绑定证书的域名 刚才你上传的 要改的地方!
         ssl_certificate_key 2.xxxxxxxx.key; #刚才你上传的 要改的地方!
         ssl_session_timeout 5m;
         ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
         ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
         ssl_prefer_server_ciphers on;
         location / {
             proxy_set_header Host $host;
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
             proxy_pass http://127.0.0.1:8080; #改成你要映射的端口 要改的地方!
         }
     }

         接下来启动nginx,命令如下

 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

         如何排查问题,有问题先看日志,nginx下面有logs日志,accesserror日志都有,然后接下来如果转发没问题是否打到了Tomcat日志里,如果springboot没有单独配置日志目录的话,可以在catalina.out日志看到是否有错误。

[root@VM_0_4_centos conf]# cd /home/work/tomcat/apache-tomcat-9.0.20/logs/
[root@VM_0_4_centos logs]# ll
total 2760
-rw-r----- 1 root root   29078 Jun  2 19:44 catalina.2019-06-02.log
-rw-r----- 1 root root   30517 Jun  3 11:49 catalina.2019-06-03.log
-rw-r----- 1 root root 2641549 Jun  3 12:10 catalina.out
-rw-r----- 1 root root       0 Jun  2 15:28 host-manager.2019-06-02.log
-rw-r----- 1 root root       0 Jun  3 10:00 host-manager.2019-06-03.log
-rw-r----- 1 root root    8693 Jun  2 19:44 localhost.2019-06-02.log
-rw-r----- 1 root root    4523 Jun  3 11:49 localhost.2019-06-03.log
-rw-r----- 1 root root   25444 Jun  2 21:20 localhost_access_log.2019-06-02.txt
-rw-r----- 1 root root   60521 Jun  3 12:10 localhost_access_log.2019-06-03.txt
-rw-r----- 1 root root       0 Jun  2 15:28 manager.2019-06-02.log
-rw-r----- 1 root root       0 Jun  3 10:00 manager.2019-06-03.log

最后

        从写完到部署完,写一个博客记录一下。期间踩过不少坑,比如centos7防火墙改成iptables,mysql ip权限设置,redis设置等等,其实有问题是很正常的,关键是要养成一个良好的排查问题的习惯,该从哪里下手。
        加油!!

参考博客

https://blog.csdn.net/qq_33512843/article/details/80951741
https://blog.csdn.net/long690276759/article/details/82790002

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值