部署SpringBoot项目(jar+nginx+fastdfs)

部署SpringBoot项目(jar+nginx+fastdfs)

1、依赖/使用的程序软件

  • mysql:数据存储服务器
  • nginx:反向代理,用于访问图片
  • fastDFS:分布式上传下载图片
  • docker:提供容器服务

2、操作

(1)MySQL

  • 使用docker安装MySQL,服务器无需安装MySQL
  1. 搜索mysql容器

    docker search mysql
    

在这里插入图片描述

  1. 拉取mysql

    docker pull mysql
    

在这里插入图片描述

  1. 查看mysql镜像

    docker images
    

在这里插入图片描述
mysql镜像已经下载好

  1. 启动mysql服务
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=xxxx -d mysql:latest
  • --name:指定一个容器的名字,后续可以用这个名字进行一些操作
  • -p:将容器的3306端口映射到docker宿主机的3306端口
  • -e:设置参数的值,这里MYSQL_ROOT_PASSWORD是设置MySQLroot用户的密码
  • -d:指定启动哪个镜像
# 查看mysql是否启动成功
docker ps

在这里插入图片描述
已经启动成功

  1. 连接mysql

    docker exec -it mysql bash
    

    使用上述命令进入容器中,连接mysql

    mysql -u root -p xxx
    

在这里插入图片描述

mysql连接成功,说明mysql已经配置好了。想要操作mysql就需要进入到docker已经开启的mysql容器中进行操作

  1. 关闭/重启mysql
docker stop mysql  # 关闭mysql
docker start mysql # 开启mysql
docker restart mysql # 重启mysql
docker ps          # 查看正在运行的容器
docker ps -a       # 包括未运行的容器

C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20201103165106697.png
在这里插入图片描述

(2)fastDFS和nginx

nginx和fastDFS需要一起使用

  • 所有安装包

    • libfastcommonV1.0.7.tar.gz:fastDFS依赖程序

    • FastDFS_v5.05.tar.gz:fastDFS安装包

    • fastdfs-nginx-module_v1.16.tar.gz:nginx和fastdfs的桥梁插件模块

    • nginx-1.8.1.tar.gz:nginx安装包

在这里插入图片描述

  • 安装过程

    1. 安装编译环境

      apt install gcc g++
      
    2. 安装libfastcommon

      cd /usr/local/package  # /usr/local/package存放安装包
      tar -xzf libfastcommonV1.0.7.tar.gz
      cd libfastcommon-1.0.7
      ./make.sh
      ./make.sh install
      cp /usr/lib64/libfastcommon.so /usr/lib
      
    3. 创建fastDFS数据存储的目录

      mkdir -p /usr/local/apps/fastDFS/tracker   # fastDFS跟踪器数据目录
      mkdir -p /usr/local/apps/fastDFS/storage   # fastDFS存储节点数据目录
      mkdir -p /usr/local/apps/fastDFS/client
      
    4. 安装fastDFS

      cd /usr/local/package
      tar -zxf FastDFS_v5.05.tar.gz
      cd FastDFS
      ./make.sh
      ./make.sh install
      cd conf
      cp * /etc/fdfs
      
    5. 配置fastDFStracker节点

      vim /etc/fdfs/tracker.conf
      base_path=/usr/local/apps/fastDFS/tracker/  # 设置此变量,就是刚才创建的目录
      
    6. 启动tracker节点

      /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
      

      此时可以看到tracker跟踪器节点已经启动:

      在这里插入图片描述

    7. 配置storage节点

      vim /etc/fdfs/storage.conf
      base_path=/usr/local/apps/fastDFS/storage/
      store_path0=/usr/local/apps/fastDFS/storage/
      tracker_server=172.16.49.5:22122  # 服务器需要改为公网ip
      
    8. 启动storage节点

      /usr/bin/fdfs_storaged /etc/fdfs/storage.conf
      

      此时可以看到storage存储节点已经启动
      在这里插入图片描述

    9. 测试fastDFS

      1. 从编译完的FastDFS目录(/usr/local/package/FastDFS/)复制libfastclient.so/usr/lib目录

        cd /usr/local/package/FastDFS
        cp libfastclient.so /usr/lib
        
      2. 修改测试的配置文件

        vim /etc/fdfs/client.conf
        base_path=/usr/local/apps/fastDFS/client
        tracker_server=172.16.49.5:22122  # 和上诉设置得一样
        
      3. 开始测试上传

        echo hello > test.txt  # 新建一个测试文件
        /usr/bin/fdfs_test /etc/fdfs/client.conf upload test.txt  #上传文件
        

        可以看到文件已经上传成功了:

        在这里插入图片描述
        进入到M00/00/00/rBAxBV-hInOARQxgAAAABncc3SA130_big.txt目录中去看一下文件是否存在,数据目录就是前面设置的/usr/local/apps/fastDFS/storage
        在这里插入图片描述
        文件存在。

    10. 安装nginx需要的依赖包

      sudo apt-get install openssl libssl-dev  # openssl
      sudo apt-get install libpcre3 libpcre3-dev # pcre
      sudo apt-get install zlib1g-dev # zlib
      
    11. 解压fastdfs-nginx-module_v1.16.tar.gz

      cd /usr/local/package 
      tar -zxf fastdfs-nginx-module_v1.16.tar.gz
      
    12. 修改fastdfs-nginx-module的配置文件

      cd fastdfs-nginx-module/src/
      vim config
      

    在这里插入图片描述

    修改图中的两个变量。
    
    1. 复制fastdfs-nginx-module/src/mod_fastdfs.conf/etc/fdfs目录下,并编辑

      vim /etc/fdfs/mod_fastdfs.conf
      
      tracker_server=172.16.49.5:22122  
### 部署包含Spring Boot、Redis、Nginx和Vue3项目的指南 #### 使用Docker部署综合项目结构 为了成功地使用Docker部署一个由Spring Boot后端、Redis缓存服务、Nginx作为反向代理以及Vue.js前端组成的复杂Web应用程序,通常需要创建多个容器来分别处理各个组件的服务。这可以通过定义`docker-compose.yml`文件实现多容器编排。 对于具体的配置细节,在`docker-compose.yml`中可以指定不同服务之间的依赖关系和服务本身的属性,比如暴露的端口号、挂载的数据卷等[^4]。 #### 构建前后端分离的应用架构 - **后端部分**:基于Spring Boot框架开发API接口,并通过Maven或Gradle工具构建可执行JAR包。在对应的Dockerfile中应指明基础镜像(如采用官方OpenJDK镜像),复制打包好的jar文件至目标位置并设置入口点命令启动Java应用;同时利用环境变量传递必要的配置项给应用程序实例,例如数据库连接字符串或者密钥等敏感信息[^3]。 如果遇到类似`ADD failed: file not found in build context or excluded by .dockerignore`这样的错误,则可能是由于`.dockerignore`文件排除了所需的资源或者是当前工作目录下的相对路径不正确所引起的。确保项目根目录存在有效的输出制品并且未被忽略规则匹配上是解决问题的关键所在[^2]。 - **前端部分**:以Vue CLI脚手架为基础建立单页面应用(SPA),经过npm run build指令产出静态网页资产放置于特定文件夹内供后续集成调优阶段引用。针对Vue Router的历史模式(History Mode)特性做适配调整时,需配合Nginx服务器设定恰当的位置路由规则以便正确解析URL地址映射到实际存在的HTML文档片段之上[^1]。 ```yaml version: '3' services: backend: image: springboot-app ports: - "8080:8080" environment: SPRING_DATASOURCE_URL: jdbc:mysql://db:3306/mydatabase?useSSL=false&serverTimezone=UTC SPRING_REDIS_HOST: redis depends_on: - db - redis frontend: image: nginx volumes: - ./frontend/dist:/usr/share/nginx/html ports: - "80:80" db: image: mysql/mysql-server:latest environment: MYSQL_ROOT_PASSWORD: jeecg123456 volumes: - db_data:/var/lib/mysql redis: image: redis:alpine volumes: db_data: ``` 上述YAML片断展示了如何组合各独立部件形成统一的整体解决方案。其中特别强调了关于MySQL密码默认值的信息[^5]。 #### 注意事项 确保所有涉及的安全凭证都妥善保管起来,不要硬编码进源代码或是公开版本控制系统里面去。另外考虑到生产环境中可能涉及到更复杂的网络策略与安全组规则等因素的影响,建议提前做好充分测试验证再正式上线发布。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值