java前后端分离项目部署

淡淡的烟草味﹌ 2024-03-31 13:50 264阅读 0赞
一、Window环境部署
前端部署

1、首先打包项目:

npm run build;

2、配置nginx

Vue项目的入口是index.html,nginx路由必须要经过这个文件,所以要配置nginx.conf文件。

找到localhost,添加一行代码 try_files $uri $uri/ /index.html last;

  1. location / {
  2. root html;
  3. try_files $uri $uri/ /index.html last;
  4. index index.html index.htm;
  5. }

3、重启nginx

nginx.exe -s restart

后端部署

1、打包项目

  1. mvn clean package -Dmaven.test.skip=true

2、启动项目即可

  1. java -jar vueblog-0.0.1-SNAPSHOT.jar --spring.profiles.active=default
二、Linux 环境部署

1、配置后端项目在生产环境的yml

  1. spring:
  2. datasource:
  3. type: com.alibaba.druid.pool.DruidDataSource
  4. driver-class-name: com.mysql.cj.jdbc.Driver
  5. url: jdbc:mysql://mysql:3306/simple_blog?&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
  6. username: root
  7. password: 123456
  8. mybatis-plus:
  9. mapper-locations: classpath:/mapper/*.xml
  10. # configuration:
  11. # log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  12. shiro-redis:
  13. enabled: true
  14. redis-manager:
  15. host: redis:6379

因为mysql和redis和后端项目都是在同一网络下编排的,所以可以用编排的名称来代替指定的ip地址

2、打包后端项目

  1. mvn clean package -Dmaven.test.skip=true

3、编写Dockerfile构建后端镜像

  1. FROM java:8
  2. EXPOSE 8081
  3. ADD simpleBlog-0.0.1-SNAPSHOT.jar app.jar
  4. RUN bash -c 'touch /app.jar'
  5. ENTRYPOINT ["java", "-jar", "app.jar", "--spring.profiles.active=pro"]

注意:如果项目中第三方服务都已经部署好在其他服务上的,则只需在后端项目中配置好指定的地址即可,剩下的步骤的都是基于所有服务都是在同一个linux服务器上的

4、编写docker-compose.yml

  1. version: "3"
  2. services:
  3. nginx:
  4. image: nginx:latest
  5. ports:
  6. - 80:80
  7. volumes:
  8. - ./nginx/html:/usr/share/nginx/html
  9. - ./nginx/nginx.conf:/etc/nginx/nginx.conf
  10. privileged: true
  11. image: mysql:8.0.29-oracle
  12. ports:
  13. - 3306:3306
  14. volumes:
  15. - ./mysql/data:/var/lib/mysql
  16. - ./mysql/config/my.cnf:/etc/my.cnf
  17. environment:
  18. - MYSQL_ROOT_PASSWORD=123456
  19. redis:
  20. image: redis:latest
  21. vueblog:
  22. image: vueblog:latest
  23. build: .
  24. ports:
  25. - 8081:8081

mysql和nginx都是用数据卷来挂载在宿主机外面的,不然每次启动容器都会丢失上次的数据和已经配置好的前端项目。

nginx: 首先在宿主机内创建html文件夹,然后把前端项目打包好的dist文件夹的文件全部放在html文件夹上,然后修改nginx.conf

mysql:首先创建data和config文件夹,然后在config文件夹上创建my.cnf文件。

nginx.conf

  1. #user root;
  2. worker_processes 1;
  3. events {
  4. worker_connections 1024;
  5. }
  6. http {
  7. include mime.types;
  8. default_type application/octet-stream;
  9. sendfile on;
  10. keepalive_timeout 65;
  11. server {
  12. listen 80;
  13. server_name localhost;
  14. location / {
  15. root /usr/share/nginx/html;
  16. try_files $uri $uri/ /index.html last;
  17. index index.html index.htm;
  18. }
  19. error_page 500 502 503 504 /50x.html;
  20. location = /50x.html {
  21. root html;
  22. }
  23. }
  24. }

my.cnf

  1. [mysqld]
  2. user=mysql
  3. default-storage-engine=INNODB
  4. character-set-server=utf8
  5. [client]
  6. default-character-set=utf8
  7. [mysql]
  8. default-character-set=utf8

5、把准备的文件上传到同一目录下

在这里插入图片描述

6、运行指令进行项目编排,出现下图内容

docker-compose up -d

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,264人围观)

还没有评论,来说两句吧...

相关阅读