提前说明:我使用到的是docker中的 MySQL 和 redis
1. 启动 MySQL、redis
运行 MySQL 容器时,可以使用 -p
参数来将容器内的 MySQL 服务端口映射到主机上的一个端口号。具体来说,可以使用以下命令来启动一个 MySQL 容器,并将 MySQL 服务端口映射到主机上的 3306
端口:
docker run -d --name my-mysql-container -p 3306:3306 -e MYSQL_ROOT_PASSWORD=<password> mysql
在 Centos 上启动 Redis 容器,可以使用以下命令:
拉取 Redis 镜像:
docker pull redis
运行 Redis 容器:
docker run -d --name my-redis redis
在上面的命令中,my-redis 是您为 Redis 容器设置的名称,redis 是要运行的 Redis 镜像名称。使用 -d 参数可以在后台运行 Redis 容器。
您还可以使用其他参数来配置 Redis 容器,例如端口映射、挂载卷、环境变量等。例如,要将 Redis 的 6379 端口映射到主机的 6380 端口,可以使用以下命令:
docker run -d --name my-redis -p 6380:6379 redis
在上面的命令中,-p 6380:6379 指定要将 Redis 的 6379 端口映射到主机的 6380 端口。
此外,还可以使用 Docker Compose 来管理 Redis 容器和其他容器。Docker Compose 是一个用于定义和运行多个 Docker 容器的工具,可以使用 YAML 文件来定义多个容器的参数和配置。
记得开放 MySQL 和 redis 的端口号!!
创建数据库
-
先在 idea 中连接上我们服务器上的数据库
-
连接上之后,我们就开始创建表了,可以直接运行 hmdb.sql 这个文件
2. 打包、上传项目
-
先在 idea 中运行 package 命令,最好先执行 clean 命令
-
找到 target 目录下我们刚刚打包好的 jar 包
-
使用 finalshell 连接到我们的远程服务器
-
将 jar 包上传到服务器上
-
使用 ls 命令查看是否上传成功
3. 运行 jar 包
-
先确认我们服务器上已经安装了 Java 环境
-
运行以下命令来执行我们的 jar 包,注意这里我是分了两个配置文件一个是 application.yml,一个是 application-prod.yml,如果你只有 application.yml 这个配置文件的话就执行第2个命令!!
# 使用 application-prod.yml 中的配置信息
java -Dspring.profiles.active=prod -jar hm-dianping-0.0.1-SNAPSHOT.jar
# 没有 application-prod.yml 则执行这个命令
java -jar hm-dianping-0.0.1-SNAPSHOT.jar
-
成功运行
到这里我们后端就部署完成了!!
4. 验证后端是否部署成功
打开浏览器,输入 http://你的公网IP:端口号/user/login,出现以下页面就表示成功了,这里显示异常是因为这个接口需要传参
4. 部署前端
-
首先先安装nginx
# 安装 Nginx: sudo yum install nginx # 启动 Nginx:sudo systemctl start nginx # 设置 Nginx 开机自启动: sudo systemctl enable nginx # 检查 Nginx 状态: sudo systemctl status nginx
-
如果你的服务器中有启用防火墙(firewall),需要开放 Nginx 的 HTTP 和 HTTPS 端口。你可以执行以下命令:
sudo firewall-cmd --zone=public --add-service=http --permanent sudo firewall-cmd --zone=public --add-service=https --permanent sudo firewall-cmd --reload
其中,第一行命令用于开放 HTTP 端口,第二行命令用于开放 HTTPS 端口,第三行命令用于重新加载防火墙规则。
-
将前端项目的文件压缩,然后上传到服务器上,然后再解压,这里我上传到/app目录下
-
修改nginx配置文件
-
打开配置文件
vim /etc/nginx/nginx.conf
-
将配置文件server{}里面的内容改成以下内容
server { listen 80; server_name localhost; # 将所有以 /api 开头的请求转发给后端应用程序 location /api/ { proxy_pass http://localhost:8090/; proxy_set_header Host $host; } # 针对前端,使用根目录并指向应用程序的索引文件 location / { root /app/hmdp; index index.html; } }
-
最后重启 nginx 服务
systemctl restart nginx
-
到这里,前后端就都部署好了!!