Vue+SpringBoot+Nginx实现部署服务器
创始人
2025-01-17 14:34:01
0

进入服务器:

ubuntu@服务器ip

密码

授权sudo su

一.前端Vue打包

1.打包

打开vue项目 控制台运行指令打包

npm run build

2.配置

打包后会生成dist文件夹

二.后端SpringBoot打包

1.准备工作

1.1 确保项目安装了打包依赖

                                        org.springframework.boot                 spring-boot-maven-plugin                 2.7.14                        

注意:这个依赖在pom.xml中出现爆红的原因可能是版本未设置

           应该将版本设置成和spring-boot-starter-parent一样

         org.springframework.boot         spring-boot-starter-parent         2.7.14               

 1.2 确保安装了maven

注意:配置好环境变量后,cmd一定要重启,不然还可能报错

mvn --version 检查maven版本

参考【http://t.csdnimg.cn/Dkxly】

2.正式打包 

终端运行打包命令

mvn package

或者直接在idea右边的maven工具中打包

先clean 再package

三.Nginx配置

创一个文本文件nginx.conf 

#user  root; worker_processes  1; events {   worker_connections  1024; } http {   include       mime.types;   default_type  application/octet-stream;   sendfile        on;   keepalive_timeout  65;   server {       listen       80;       server_name  106.54.225.159;       location / {           root   /usr/share/nginx/html;           try_files $uri $uri/ /index.html;           index  index.html index.htm;       }       location /api/ {           proxy_pass http://106.54.225.159:8083; 	  proxy_redirect default; 	  rewrite ^/api/(.*) /$1 break;       }       error_page   500 502 503 504  /50x.html;       location = /50x.html {           root   html;       }   } } 

四.服务器部署

1.Dockerfile

写一个文本文件Dockerfile

FROM  openjdk:8    ENV TZ=Asia/Shanghai    ADD upload_demo.jar upload_demo.jar   EXPOSE 8083      #执行命令 RUN bash -c 'touch /upload_demo.jar' ENTRYPOINT ["java", "-jar", "/upload_demo.jar", "--spring.profiles.active=pro"]

2.docker-compose

写docker-compose.yml文件 

version: "3" services:   nginx: # 服务名称,用户自定义     image: nginx:latest  # 镜像版本     ports:       - 80:80  # 暴露端口     volumes: # 挂载       - /home/ubuntu/lyh2/nginx/html:/usr/share/nginx/html       - /home/ubuntu/lyh2/nginx/nginx.conf:/etc/nginx/nginx.conf     privileged: true # 这个必须要,解决nginx的文件调用的权限问题    mysql:     image: mysql:5.7     ports:       - 3308:3306     environment: # 指定用户root的密码       - MYSQL_ROOT_PASSWORD=123456      server:     image: server:latest     build: . # 表示以当前目录下的Dockerfile开始构建镜像     ports:       - 8083:8083     depends_on: # 依赖与mysql、redis,其实可以不填,默认已经表示可以       - mysql 

3.准备服务器文件夹

我把需要的文件都放在了服务器的/home/ubuntu/aaa文件夹下

aaa文件夹中创建了nginx和java_project文件夹,把下列文件放入

前端dist文件夹(nginx文件夹中)

nginx配置文件(nginx文件夹中)

后端jar包 (java_project文件夹中)

dockerfile文件 (java_project文件夹中)

docker-compose文件 (java_project文件夹中)

四.docker-compose构建

docker-compose up -d

-d表示后台运行 

ps: 删除compose构建的一系列容器 

docker-compose down

删除了compose 网络也会被跟着删除 

五.数据库本地连接

1.进入mysql容器

docker exec -it  test_mysql  /bin/bash

//docker exec -it  test_mysql(数据库名)  /bin/bash 

2.进入数据库

mysql -u root -p

3.登录数据库:输密码

123456

4.开启外部访问权限

(mysql5.7)

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

myuser是mysql用户名(我的是root)

mypassword是mysql密码(我的是123456)

5.刷新

flush privileges;

ps: 开启外部访问权限(mysql8以上)

CREATE USER 'root'@'%' IDENTIFIED BY '123456';//可能已存在 进行下一条 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; flush privileges;	//刷新 

6.navicat本地连接

端口:  3307:3306

8.同步数据库表 

8.1 在本地数据库表中转储数据和结构,形成sql文件

8.2 在服务器数据库表中运行sql文件,即可生成表

六.注意事项

1.开放端口!

我刚开始部署的时候就是踩了这个坑,一直不成功

记得使用服务器部署时,要开放需要使用的服务器端口,不然可能没报错但是也部署不成功

2.工具使用

上面讲到的数据库、服务器上传文件和docker操作,我是用navicat、xshell、xftp工具完成的

需要注意的是,在工具连接到服务器时:

主机地址就是服务器ip

用户名不一定是root (我的就是ubuntu)

密码就是服务器ssh登录的密码

3.修改代码

从开发模式转到生产模式时,一定要改ip和端口

前端scr中的view中localhost改成服务器ip+端口

我的是106.....:8083

前端request.js中localhost改成服务器ip+端口

我的是106.....:8083

后端application.yml中port端口改成映射的端口

我的是port:8083

(其实我也有点分不清除,只是服务器开放的是8083端口,我索性项目也直接用8083端口了,映射就直接8083:8083,比较方便)

后端application.yml中mysql数据库配置改成服务器ip:服务器端口

url: jdbc:mysql://106......:3308/springboot?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2b8&allowMultiQueries=true&allowPublicKeyRetrieval=true&useSSL=false     username: root     password: 123456

(这里我服务器开放的是3308端口,容器默认3306端口,所以映射就是3308:3306)

nginx配置文件中映射端口改成服务器端口:容器内端口

4.报错解决

数据库无法启动:

start指令无法启动数据库容器

看看数据库的日志

docker logs    docker logs -n 50  //-n 限制输出行数

发现报错如下,也就是data的问题,因为我重建了好几次compose,里面数据库的data文件夹没有清空,导致新建的data文件夹初始化失败 

Failed to find valid data directory  Data Dictionary initialization failed //报错信息

所以我们要把data文件夹删掉,我一开始在xftp上试过,删不掉

我在服务器上用指令删的,然后mysql容器就成功运行了

rm -rf <文件夹名> 

相关内容

热门资讯

透视系统!wpk是真的还是假的... 透视系统!wpk是真的还是假的,(Wpk)一贯真的有挂(详细模拟器多开)1、每一步都需要思考,不同水...
透视了解!wepoker钻石怎... 透视了解!wepoker钻石怎么看底牌,wepoker有插件吗(详细破解辅助插件)1、首先打开wep...
透视存在!aa poker辅助... 透视存在!aa poker辅助,sohoo poker辅助(果然真的有挂)1、游戏颠覆性的策略玩法,...
透视免费!aapoker ai... 透视免费!aapoker ai插件(透视)透视插件(一贯真的是有挂)1、实时aapoker ai插件...
透视系统!wpk辅助,(WPk... 透视系统!wpk辅助,(WPk)真是真的有挂(详细辅助购买)1)wpk辅助辅助挂:进一步探索wpk辅...
透视玄学!wepoker究竟有... 透视玄学!wepoker究竟有没有透视,wepoker辅助器(详细有透视方法)1)wepoker究竟...
透视app!佛手在线大菠萝技巧... 透视app!佛手在线大菠萝技巧,epoker有透视吗(好像真的是有挂);1、让任何用户在无需佛手在线...
透视系统!aapoker怎么控... 透视系统!aapoker怎么控制牌(透视)透视软件(都是真的是有挂);1、进入到aapoker怎么控...
透视辅助!wpk德州局透视,(... 透视辅助!wpk德州局透视,(WPK)本来存在有挂(详细免费辅助)1)wpk德州局透视辅助挂:进一步...
透视最新!wepokerplu... 透视最新!wepokerplus作弊,黑侠破解wepoker(详细破解器激活码)1、黑侠破解wepo...