文章目录
- 一、前期准备
- (一)云服务器选择
- (二)本地环境准备
- (三)数据库准备(若项目需要)
- 二、服务器配置
- (一)获取服务器信息
- (二)重置实例密码与重启
- (三)安全组配置
- 三、远程连接服务器
- (一)SSH客户端选择
- (二)建立连接
- 四、服务器环境搭建
- (一)安装宝塔面板(可选但推荐)
- (二)安装JDK和数据库(通过宝塔面板或命令行)
- (三)项目打包与上传
- 五、项目部署与启动
- (一)项目配置文件修改
- (二)项目启动
- (三)端口问题排查
一、前期准备
(一)云服务器选择
在将SpringBoot项目部署到云服务器之前,我们需要先准备一台云服务器。这里以阿里云为例,阿里云提供了多种配置的云服务器可供选择,我们可以根据项目的实际需求进行挑选。在选择时,需要考虑以下因素:
- 实例规格:如基础配置(2vCPU 2GiB)、标准配置(2vCPU 4GiB)、专业配置(2vCPU 8GiB)、增强配置(4vCPU 8GiB)等。对于一般的小型项目,基础配置可能就足够起步,但如果项目预计会有较高的并发量或较大的资源消耗,就需要选择更高配置的实例。
- 存储:云服务器通常包含系统盘和数据盘。系统盘用于安装操作系统,数据盘则用于存储项目文件、数据库数据等。要确保数据盘的容量能够满足项目的运行需求,特别是如果项目涉及大量数据存储或文件上传下载功能。
- 网络带宽:预估项目的网络流量,选择合适的带宽。如果项目需要快速传输大量数据,如视频流服务或频繁的数据同步,那么较高的带宽将是必要的。
在阿里云的产品页面中,我们可以找到云服务器ECS等相关产品,并根据上述因素进行配置选择。例如,选择一个合适的套餐,如99元套餐(包含2核2G、3M固定带宽、40G ESSD Entry盘),该套餐性价比高,适合初学者或小型项目进行试用和部署。同时,选择合适的操作系统镜像,如CentOS 7.9 64位(安全加固)等。
(二)本地环境准备
确保本地的Java开发环境已经安装并配置好,包括JDK(Java Development Kit)和Maven(项目构建工具)。JDK是运行Java程序的基础,而Maven则用于管理项目的依赖关系和构建过程。可以通过在命令行中输入java -version
和mvn -v
来检查它们是否正确安装并配置。
(三)数据库准备(若项目需要)
如果项目依赖数据库,如MySQL、PostgreSQL等,需要在云服务器上安装相应的数据库服务。以MySQL为例,在云服务器上执行安装命令,安装过程中设置好数据库的用户名、密码和字符集等参数。同时,在本地开发环境中,确保项目的数据库连接配置与云服务器上的数据库设置相匹配,包括数据库地址(通常为云服务器的公网IP地址)、端口号、用户名、密码以及数据库名称等。
二、服务器配置
(一)获取服务器信息
完成云服务器购买后,我们需要记录下服务器的公网IP地址、用户名和密码。这些信息将用于后续的远程连接和操作。公网IP地址是服务器在互联网上的唯一标识,通过它我们才能从外部访问服务器;用户名和密码则用于登录服务器进行管理操作。
(二)重置实例密码与重启
为了确保服务器的安全性,我们需要先重置实例密码。在阿里云控制台中找到云服务器ECS的实例管理页面,找到对应的实例,点击“重置实例密码”按钮进行密码重置操作。重置完成后,重启服务器使密码生效。不同版本的阿里云控制台界面可能略有不同,但大致位置和操作流程相似,如果在操作过程中遇到困难,可以参考阿里云的帮助文档或在线客服寻求支持。
(三)安全组配置
安全组用于管理服务器的端口访问权限,合理配置安全组规则可以有效保护服务器安全。在阿里云控制台中进入安全组配置页面,我们可以看到默认的安全组规则,也可以创建自定义的安全组。对于我们的SpringBoot项目部署,建议开放以下端口:
- 8888端口:用于宝塔面板(如果安装),宝塔面板是一款方便的服务器运维管理工具,通过它可以更便捷地管理服务器上的各种服务和应用。
- 22端口:用于SSH远程服务,这是我们远程连接服务器进行操作的主要端口,如通过SSH客户端(如Xshell)登录服务器进行命令行操作。
- 3306端口:如果项目使用MySQL数据库,需要开放该端口以允许外部应用连接数据库。
- 8080端口:SpringBoot项目启动默认端口,用于访问项目的服务接口。当然,如果项目中配置了其他端口,也需要相应地开放。
在配置安全组规则时,指定允许访问的IP地址范围。对于学习和测试环境,我们可以暂时将源IP设置为“0.0.0.0/0”,表示允许所有IP地址访问这些端口。但在生产环境中,为了更高的安全性,应该只允许特定的可信IP地址或IP地址段访问相关端口。例如,若要限制只有本地IP地址(如192.168.1.0/24网段)可以访问数据库端口3306,就在安全组规则中设置源IP为“192.168.1.0/24”。
三、远程连接服务器
(一)SSH客户端选择
推荐使用Xshell作为SSH客户端工具来连接远程服务器,当然,也可以选择其他类似的工具,如Putty等。Xshell提供了友好的用户界面和丰富的功能,方便我们进行远程操作。
(二)建立连接
打开Xshell,点击“新建”按钮创建一个新的连接会话。在会话属性中,设置以下参数:
- 协议:选择“SSH”,这是用于安全远程登录的协议。
- 主机:输入云服务器的公网IP地址,这是我们之前记录下来的服务器在互联网上的标识。
- 端口号:默认的SSH端口号为22,如果在安全组中修改了SSH端口号,需要在这里填写修改后的端口号。
- 用户名:填写服务器的用户名,通常为root或其他具有管理员权限的用户名。
- 密码:输入之前重置后的服务器密码。
设置完成后,点击“确定”按钮保存会话设置。然后在Xshell的会话管理器中,选中新建的会话并点击“连接”按钮,即可尝试连接到远程服务器。如果连接成功,将进入服务器的命令行界面,此时就可以在本地通过命令行操作服务器了。
四、服务器环境搭建
(一)安装宝塔面板(可选但推荐)
宝塔面板是一款功能强大的Linux服务器运维管理工具,它提供了可视化的界面,使我们能够更方便地管理服务器上的各种软件和服务。虽然不是必需的,但对于不熟悉命令行操作的用户来说,宝塔面板可以大大简化服务器环境的搭建和管理过程。
- 访问宝塔官网(bt.cn),根据服务器的操作系统版本选择相应的安装脚本。例如,对于CentOS系统,在SSH连接到服务器后,执行以下命令(注意将命令中的网址复制自宝塔官网最新的安装脚本地址):
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
- 安装过程大约需要2分钟左右,安装完成后,会在命令行中显示宝塔面板的登录网址、用户名和密码。注意,这里的用户名和密码是用于登录宝塔面板的,与服务器的用户名和密码不同。
- 复制登录网址到浏览器中,输入显示的用户名和密码,即可登录到宝塔面板的管理界面。在第一次登录时,可能会要求注册宝塔官网账号,注册后使用该账号登录宝塔面板。
(二)安装JDK和数据库(通过宝塔面板或命令行)
- 通过宝塔面板安装(以MySQL为例)
- 登录宝塔面板后,在软件商店中搜索“MySQL”,找到官方的MySQL版本并点击“安装”按钮。在安装过程中,可以选择合适的版本(如MySQL 8.0.24),并根据项目需求进行一些基本配置,如设置数据库的root用户密码等。
- 安装完成后,在宝塔面板的数据库管理界面中,可以看到已安装的MySQL数据库信息。点击“添加数据库”按钮,创建项目所需的数据库,设置数据库名、用户名和密码等信息。同时,务必在“权限”设置中将访问权限修改为“所有人”,这样才能方便地通过外部工具(如Navicat)连接和管理数据库。否则,可能会遇到连接数据库时权限不足的问题。
- 通过命令行安装(以JDK为例)
- 如果选择通过命令行安装JDK,首先需要从JDK官方网站下载适合服务器操作系统的JDK版本。例如,对于CentOS系统,可以下载JDK的rpm包。
- 使用SSH连接到服务器,进入下载目录(假设下载到了
/home
目录),执行以下命令安装JDK(以JDK 8为例,实际版本号根据下载的文件而定):rpm -ivh jdk-8uXXX-linux-x64.rpm
- 安装完成后,通过
java -version
命令检查JDK是否安装成功。如果显示JDK的版本信息,则表示安装成功。
(三)项目打包与上传
- 在本地项目根目录下,使用Maven命令对SpringBoot项目进行打包。打开命令行工具,进入项目根目录,执行以下命令:
这将对项目进行清理,并生成一个可执行的JAR文件,通常位于项目的mvn clean package
target
目录下。例如,生成的JAR文件可能名为your-project-name.jar
。
- 将打包好的JAR文件上传到云服务器。可以使用FTP工具(如FileZilla)或通过SSH的文件传输功能(如在Xshell中使用SFTP)进行上传。以使用Xshell的SFTP为例,在Xshell的会话中,点击“新建文件传输”按钮,进入SFTP界面。将本地的JAR文件拖放到服务器上指定的目录中,例如
/www/wwwroot/
目录(可以根据实际情况选择合适的目录)。
五、项目部署与启动
(一)项目配置文件修改
在服务器上找到上传的项目JAR文件所在目录,打开项目的配置文件(通常为application.properties
或application.yml
),修改数据库连接等相关配置。例如,如果项目使用MySQL数据库,需要将数据库连接的URL、用户名和密码修改为服务器上MySQL数据库的实际配置:
druid:url: jdbc:mysql://your-server-ip:3306/your-database-name?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghaiusername: your-database-usernamepassword: your-database-password
其中,your-server-ip
是云服务器的公网IP地址,your-database-name
是在服务器上创建的数据库名称,your-database-username
和your-database-password
是数据库的用户名和密码。
(二)项目启动
- 在服务器上进入项目JAR文件所在目录,使用以下命令启动SpringBoot项目:
这将启动项目,并在控制台输出项目的启动日志。如果项目启动成功,将可以通过云服务器的公网IP地址和项目配置的端口号访问项目。例如,如果项目配置的端口号是8080,则可以在浏览器中输入java -jar your-project-name.jar
http://your-server-ip:8080
访问项目。 - 如果希望项目在后台运行,即关闭SSH连接后项目仍能继续运行,可以使用
nohup
命令:
这样,项目将在后台持续运行,并且将输出日志写入到noohup java -jar your-project-name.jar &
nohup.out
文件中。可以使用ps -ef | grep your-project-name.jar
命令查看项目的运行进程。
(三)端口问题排查
在项目部署过程中,经常会遇到端口相关的问题。如果无法通过公网IP地址和端口号访问项目,首先检查云服务器的安全组规则是否正确配置了相应端口的访问权限,确保端口已开放。其次,检查项目配置文件中的端口号是否与启动命令中使用的端口号一致,以及是否与服务器上其他应用程序的端口号冲突。另外,有些服务器可能还需要在防火墙中开放相应端口,如在CentOS系统中,可以使用firewall-cmd
命令来管理防火墙规则。例如,要开放8080端口,可以执行以下命令:
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
通过以上步骤,我们就可以将SpringBoot项目成功部署到云服务器上,并通过公网访问项目服务。在部署过程中,可能会遇到各种问题,但只要按照上述流程逐步排查和解决,就能够顺利完成项目的部署上线。希望这篇博客能够帮助到大家,祝大家部署顺利!