返回

简明指南:SpringBoot+Nginx项目部署(Windows)

后端

在本地环境构建和部署SpringBoot应用的完整指南

构建和部署SpringBoot应用可以让人望而生畏,尤其是对于新手来说。本指南旨在通过提供逐步说明和代码示例,帮助你轻松驾驭整个过程。让我们从头开始吧!

1. 准备工作

1.1 安装JDK

Java开发工具包(JDK)是运行Java程序所必需的。从Oracle官网下载与你系统版本相匹配的JDK。安装过程只需双击安装程序并按照提示进行操作。

1.2 安装SpringBoot

SpringBoot是一个简化Java开发的框架。从SpringBoot官网下载适用于你系统版本的SpringBoot,并将其解压到任意目录中。

1.3 安装Nginx

Nginx是一个轻量级、高性能的Web服务器。从Nginx官网下载适用于你系统版本的Nginx,并按照提示完成安装。

2. 配置环境变量

2.1 配置JAVA_HOME

在系统变量中添加JAVA_HOME变量,指向JDK安装目录的路径。

2.2 配置Path

在Path变量中添加%JAVA_HOME%\bin,以使系统识别Java命令。

3. 启动SpringBoot项目

3.1 编译项目

使用mvn package命令编译SpringBoot项目。

3.2 运行项目

使用java -jar target/springboot.jar命令运行SpringBoot项目。

4. 配置Nginx

4.1 创建配置文件

在Nginx的conf目录中创建一个新的配置文件,例如myproject.conf。

4.2 配置Nginx

在myproject.conf文件中添加如下内容:

server {
  listen 80;
  server_name localhost;

  location / {
    proxy_pass http://127.0.0.1:8080;
  }
}

其中,127.0.0.1:8080是SpringBoot项目的运行地址和端口。

4.3 启动Nginx

使用nginx -c conf/myproject.conf命令启动Nginx。

5. 访问项目

在浏览器中输入http://localhost/即可访问SpringBoot项目。

6. 局域网访问

要使SpringBoot项目可以在局域网中访问,需要在启动时指定IP地址。

6.1 配置SpringBoot项目

在SpringBoot项目的主类中添加以下代码:

@SpringBootApplication
public class Application {

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

  @Bean
  public EmbeddedServletContainerCustomizer containerCustomizer() {
    return container -> container.setPort(8080);
  }
}

6.2 配置Nginx

在myproject.conf文件中将proxy_pass的地址修改为SpringBoot项目的IP地址和端口,例如:

location / {
  proxy_pass http://192.168.1.100:8080;
}

其中,192.168.1.100是SpringBoot项目的IP地址,8080是SpringBoot项目的端口。

7. 安装MySQL

7.1 下载MySQL

从MySQL官网下载适用于你系统版本的MySQL。

7.2 安装MySQL

双击安装程序并按照提示完成安装。

7.3 配置MySQL

在MySQL的bin目录中创建一个名为my.ini的配置文件,并添加如下内容:

[mysqld]
datadir="C:/ProgramData/MySQL/MySQL Server 8.0/Data"

其中,C:/ProgramData/MySQL/MySQL Server 8.0/Data是MySQL的数据目录。

7.4 启动MySQL

使用mysqld --console命令启动MySQL。

7.5 创建数据库

使用命令CREATE DATABASE my_database;创建数据库my_database。

7.6 创建用户

使用命令CREATE USER 'username'@'%' IDENTIFIED BY 'password';创建用户username,密码为password。

7.7 授予权限

使用命令GRANT ALL PRIVILEGES ON my_database.* TO 'username'@'%';授予用户username对my_database数据库的所有权限。

8. 连接MySQL

8.1 导入JDBC驱动

将MySQL的JDBC驱动jar包导入SpringBoot项目的依赖中。

8.2 配置数据源

在SpringBoot项目的application.properties文件中添加如下内容:

spring.datasource.url=jdbc:mysql://localhost:3306/my_database
spring.datasource.username=username
spring.datasource.password=password

其中,jdbc:mysql://localhost/my_database是MySQL的连接URL,username是MySQL的用户名,password是MySQL的密码。

9. 测试连接

在SpringBoot项目中编写代码测试与MySQL的连接是否成功。

常见问题解答

1. 启动SpringBoot项目时出现ClassNotFoundException

确保已正确配置JAVA_HOME环境变量并已将SpringBoot项目添加到classpath中。

2. 访问项目时显示404错误

检查Nginx的配置文件是否正确,并确保SpringBoot项目正在运行。

3. 局域网中无法访问项目

确保防火墙未阻止对SpringBoot项目的访问,并检查局域网中的IP地址是否正确。

4. 连接MySQL时出现SQLException

检查JDBC驱动程序的版本是否正确,并确保已正确配置数据源。

5. 如何配置SpringBoot项目以使用HTTPS?

使用Spring Boot Actuator模块添加SSL支持,并配置密钥库和证书。