springboot部署到服务器 启动_超详细-腾讯云服务器(CentOS7)部署一个简单的springboot应用且公网可以访问...

bc46ccc20a976f11c65f067dfeb497e3.png

本文默认读者有一定linux基础。如果不会,就看得很费劲。


准备工作:

1.一个springboot jar包

2.上传jar包到腾讯云服务器的工具,如WinSCP(没有请自己下载安装)

3.登录腾讯云服务器终端的工具如xshell(没有请自己下载安装。可选,腾讯云服务器有提供web终端,可以在web终端输入命令进行操作)


主要步骤:

1.腾讯云服务器安装jdk

2.准备springboot jar包

2.上传jar包到腾讯云服务器

3.启动jar包

4.打开防火墙和HTTP服务

5.设置腾讯云服务器安全组


1.腾讯云服务器安装jdk

Java应用的运行需要一个环境。腾讯云服务器上的是不会安装jdk的。我们要自己安装。

打开腾讯云服务器的web终端,或者打开xshell进行登录到腾讯云服务器,这里使用xshell.

1.1 web终端登录

在如下位置打开。

13d3736d7e439425adea97efb10f9af6.png

1.2xshell登录

打开xshell会自己弹出一个会话框。如果没有,点击 文件----新建

fe8e7740c223d5adc9a450ab1a80fa8a.png

3e00d9fe4d990ee695038fca602ad12d.png

主机填腾讯云服务器的公网地址。

公网地址怎么找,在下边我圈出来了。

2c8ffc2a1e06ecc81ecfc2658fc18237.png

然后点击 用户身份验证,输入登录到腾讯云服务器的账户密码,账户默认是 root.

1bfdfb75d4de8882278884d674a91238.png

原来设置的密码太难记,自己设置一个。点击下图箭头所指就可以设置密码。

9d0e426066751670f46da25fc34a4c69.png

输入完后,点击连接按钮。

这里贴一下安装jdk的几种方法(来自linux公社的文章),我使用的是方法二,安装的是jdk1.8。

方法一:手动解压JDK的压缩包,然后设置环境变量

1.在/usr/目录下创建java目录
[root@localhost ~]# mkdir/usr/java
[root@localhost ~]# cd /usr/java

2.下载jdk,然后解压
[root@localhost java]# curl -O http://download.Oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz
[root@localhost java]# tar -zxvf jdk-7u79-linux-x64.tar.gz

3.设置环境变量
[root@localhost java]# vi /etc/profile
在profile中添加如下内容:
#set java environment
JAVA_HOME=/usr/java/jdk1.7.0_79
JRE_HOME=/usr/java/jdk1.7.0_79/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
让修改生效:
[root@localhost java]# source /etc/profile

4.验证JDK有效性
[root@localhost java]# java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

方法二:用yum安装JDK

1.查看yum库中都有哪些jdk版本(暂时只发现了openjdk)
[root@localhost ~]# yum search java|grep jdk
ldapjdk-javadoc.x86_64 : Javadoc for ldapjdk
java-1.6.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.6.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.6.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.6.0-openjdk-javadoc.x86_64 : OpenJDK API Documentation
java-1.6.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.7.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.7.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.7.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.7.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.7.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.8.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.8.0-openjdk-headless.x86_64 : OpenJDK Runtime Environment
java-1.8.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.8.0-openjdk-src.x86_64 : OpenJDK Source Bundle
ldapjdk.x86_64 : The Mozilla LDAP Java SDK

2.选择版本,进行安装
//选择1.7版本进行安装
[root@localhost ~]# yum install java-1.7.0-openjdk
//安装完之后,默认的安装目录是在: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75.x86_64

3.设置环境变量
[root@localhost ~]# vi /etc/profile
在profile文件中添加如下内容
#set java environment
JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75.x86_64
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
让修改生效
[root@localhost java]# source /etc/profile

4.验证(同方法一)

方法三:用rpm安装JDK

1.下载rpm安装文件
[root@localhost ~]$ curl -O http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.rpm

2.使用rpm命令安装
[root@localhost  ~]# rpm -ivh jdk-7u79-linux-x64.rpm

3.设置环境变量
[root@localhost java]# vi /etc/profile
在打开的profile文件中添加如下内容
#set java environment
JAVA_HOME=/usr/java/jdk1.7.0_79
JRE_HOME=/usr/java/jdk1.7.0_79/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
让修改生效
[root@localhost java]# source /etc/profile

4.验证(同上一方法)
注:和yum安装类似,不用设置环境变量就可以运行java命令。rpm安装方式默认会把jdk安装到/usr/java/jdk1.7.0_79,然后通过三层链接,链接到/usr/bin,具体链接如下:
[root@localhost ~]# cd /bin
[root@localhost bin]# ll|grep java
lrwxrwxrwx. 1 root root    25 Mar 28 11:24 jar ->/usr/java/default/bin/jar
lrwxrwxrwx. 1 root root    26 Mar 28 11:24 java -> /usr/java/default/bin/java
lrwxrwxrwx. 1 root root    27 Mar 28 11:24 javac ->/usr/java/default/bin/javac
lrwxrwxrwx. 1 root root    29 Mar 28 11:24 javadoc ->/usr/java/default/bin/javadoc
lrwxrwxrwx. 1 root root    28 Mar 28 11:24 javaws ->/usr/java/default/bin/javaws
lrwxrwxrwx. 1 root root    30 Mar 28 11:24 jcontrol ->/usr/java/default/bin/jcontrol
[root@localhost bin]# cd /usr/java/
[root@localhost java]# ll
total 4
lrwxrwxrwx. 1 root root  16 Mar 28 11:24 default-> /usr/java/latest
drwxr-xr-x. 8 root root 4096 Mar 28 11:24 jdk1.7.0_79
lrwxrwxrwx. 1 root root  21 Mar 28 11:24 latest -> /usr/java/jdk1.7.0_79

2.准备springboot jar包

2.1 简单建一个springboot项目

这个过程略,不知道的可以网上搜索怎么新建一个简单的springboot项目。

我新建的一个demo,实现了一个请求,显示一个hello world.贴一下controller的代码

package com.example.demo.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * created by wyx on 2019/9/7
 */
@RestController
@RequestMapping("/hello")
public class TestController {
    @RequestMapping("/w")
    public String testHello() {
        return "Hello world!";
    }
}

application.properties配置文件

server.port=8082
server.servlet.context-path=/mydemo

打开浏览器效果如下:

14eb938ff3eca4219a67bec177ece74b.png

2.2 打jar包

我在idea中新建的项目。点击箭头指向的位置。打开Maven projects视图

5198aaf572b14c162df40a3a1d820724.png

选中clean,然后运行(clean的作用是清除原来编译的class文件,也就是删除target文件夹)

8413b28b06328fea585ed71f69c1b98e.png

然后在选择install,运行(这是生成jar包)

c50d6d7a9fae22638b0775c0268ca94b.png

install成功的话,terget文件夹下会出现一个jar包

0d917c2d9eccbe97f74350e7c45e9d50.png

3.上传jar包到腾讯云服务器

3.1打开winSCP,新建会话,连接。

38515cb00c692b2c697ff775d4e8b28a.png

(1)文件协议默认SFTP就好

(2)主机名填写腾讯云服务器的公网地址

(3)用户名是root。

(4)输入密码

(5)端口默认22

填好,登录

7ed209780db8606c8bce806d75f4e70a.png

成功登录后,界面如下。左边是你自己电脑的文件,右边是腾讯云服务器的文件。

9da5479e08fbfc288e94d40fb2d08db9.png

在左边框找自己的jar包在的位置。并打开右边腾讯云服务器自己想上传的jar的位置。我这里是放在

usr下。怎么打开usr??? 看箭头指的,点它

2e9ce00f159c676b312d662182507077.png

然后看到一个usr文件夹

7311750206950b2522eea54d917eb484.png

新建一个文件夹,用来放jar包。

29a3198d6165d4fd782457b8b71598af.png

所有设置默认就好

03224edda5f7b7f2e32f6dec4376c627.png

打开testdemo文件夹。然后直接把自己的jar包拖拽进去

8be2447266923c97e07065ae2e008f42.png

3.启动jar包

(1)打开xshell,输入命令,进到jar包所在的位置,

cd /usr/testdemo

建启动停止文件

touch springboot.sh

(2)打开文件

vim springboot.sh

(3)按 i 进入编辑模式,将下面的代码粘贴到springboot.sh中。

#!/bin/bash
#这里可替换为你自己的执行程序,其他代码无需更改
APP_NAME=demo-0.0.1-SNAPSHOT.jar
 
#使用说明,用来提示输入参数
usage() {
    echo "Usage: sh 执行脚本.sh [start|stop|restart|status]"
    exit 1
}
 
#检查程序是否在运行
is_exist(){
  pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
  #如果不存在返回1,存在返回0
  if [ -z "${pid}" ]; then
   return 1
  else
    return 0
  fi
}
 
#启动方法
start(){
  is_exist
  if [ $? -eq "0" ]; then
    echo "${APP_NAME} is already running. pid=${pid} ."
  else
    nohup java -jar $APP_NAME >> catalina.out 2>&1 &
  fi
}
 
#停止方法
stop(){
  is_exist
  if [ $? -eq "0" ]; then
    kill -9 $pid
  else
    echo "${APP_NAME} is not running"
  fi
}
 
#输出运行状态
status(){
  is_exist
  if [ $? -eq "0" ]; then
    echo "${APP_NAME} is running. Pid is ${pid}"
  else
    echo "${APP_NAME} is NOT running."
  fi
}
 
#重启
restart(){
  stop
  start
}
 
#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
  "start")
    start
    ;;
  "stop")
    stop
    ;;
  "status")
    status
    ;;
  "restart")
    restart
    ;;
  *)
    usage
    ;;
esac

要退出编辑界面,先按ESC,然后输入 :wq (不要漏掉:)再回车就可以保存并退出了。

(4)把springboot.sh 设为可执行文件

chmod 770  springboot.sh

如果成功会变成绿色

642928f38a12a79e63d686baeb98b8af.png

(5) 运行springboot.sh

./springboot.sh

(6) 按命令提示输入命令

比如说start就是启动jar。

sh springboot.sh start

怎么验证运行成功:

sh springboot.sh status

3f9631de5baaaccc2dfa87a9a20169f2.png

同理,可验证当前 jar 包是否在运行

4.打开防火墙和HTTP服务

4.1打开防火墙,添加端口

首先检查有没有8082端口

firewall-cmd --query-port=8082/tcp 

没有就添加端口

firewall-cmd --zone=public --add-port=8082/tcp

如果提示

FirewallD is not running

那就是防火墙没有开启,那么就开启

systemctl start firewalld

然后再执行firewall-cmd --zone=public --add-port=8082/tcp

其他相关命令

-关闭防火墙

systemctl stop firewalld

-重启firewall

firewall-cmd --reload

-查看指定区域所有开启的端口号

firewall-cmd --zone=public --list-ports

4.2、HTTP服务

先安装apache才能启动http服务

(1)安装apache

yum install httpd #根据提示,输入Y安装即可成功安装

systemctl start httpd.service #启动apache

systemctl stop httpd.service #停止apache

systemctl restart httpd.service #重启apache

systemctl enable httpd.service #设置apache开机启动

(2)、启动http服务

httpd -version #检查是否安装

yum install httpd #安装http服务

service httpd start #启动http服务

service httpd status #检查http服务状态(会显示绿色的active(running)表示启动成功)

service httpd restart #重启http服务

3、配置文件

httpd相关配置文件:

主配置文件:/etc/httpd/conf/httd.conf ,这个是httpd最主要的配置文档

扩展配置文件:/etc/httpd/conf.d/*.conf ,这个是httpd的额外配置文档

文档根目录: /var/www/html ,这个是apache 首页的文档目录 ,即输入http://127.0.0.1 显示页面所在的目录

服务脚本:/etc/rc.d/init.d/httpd

错误目录:/var/www/error ,服务器设定错误,请求的资源错误或浏览器访问出现错误等错误文件的存储目录

CGI目录: /var/www/cgi-bin/ ,预设为CGI运行脚本的存储目录

日志目录:/var/log/httpd ,client端登录httpd时,记录的登录日志等信息存储目录

脚本配置文件: /etc/sysconfig/httpd

Listen端口:80/tcp ,443/tcp

命令执行文件:/usr/sbin/apachectl ,/usr/sbin/httpd,/usr/bin/htpasswd

PID文件:/var/run/httpd/httpd.pid

5.设置腾讯云服务器安全组

5.1新建安全组。安全组是一个逻辑分组,用来设置出入站规则。详细信息请看腾讯云服务器上的解释。

a107d7eff6ba1117489b7a739bc370e9.png

5.2添加入站规则。入站规则就是访问腾讯云服务器的规则。添加我们web应用的端口8082

f63e97903e2afb72d5d4c5d4f426d533.png

3ae1776865ef7c0198266a4e9e0a3350.png

5.3 关联实例,关联你的服务器实例。

5e9d728118c21923a1362d0f7fd89e7b.png

最后,我们就可以在浏览器上输入http://你的公网IP:8082/mydemo/hello/w,然后就可以访问自己的demo了。

5f34cc12046d08fd0095ea3d23f44ae9.png

如果觉得写得可以请给我点个赞吧,^-^,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值