码神之路项目部署(五)

news2025/2/27 2:49:00

这一章主要是讲解一下怎么部署上线项目

一、上线准备

腾讯云服务器一台(2核2g)、域名一个 (可有可无)

说明:当然了服务器的配置根据项目来选择,2核2g跑这个博客小项目是完全没有问题的

二、服务器安装环境

用yum 去安装

比如要安装java ,百度搜 yum -y install java

比如要安装数据库,百度搜 yum如何安装mysql 5.7

好吧我承认当初安装时看的教程文章随手搜的,网址没保存,后期我找了好的教程会补充上地址

三、域名备案

四、部署后端

1、安装docker

# 1、yum 包更新到最新 
yum update
# 2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的 
yum install -y yum-utils device-mapper-persistent-data lvm2
# 3、 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 4、 安装docker,出现输入的界面都按 y 
yum install -y docker-ce
# 5、 查看docker版本,验证是否验证成功
docker -v
#启动docker
/bin/systemctl start docker.service

2、拉取镜像

docker pull nginx
docker pull redis:5.0.3
docker pull java:8
docker pull mysql:5.7

3、mysql配置

创建容器,设置端口映射、目录映射

mkdir /mnt/docker/mysql
cd /mnt/docker/mysql
docker run -id \
-p 3307:3306 \
--name=c_mysql \
-v /mnt/docker/mysql/conf:/etc/mysql/conf.d \
-v /mnt/docker/mysql/logs:/logs \
-v /mnt/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.7

在/mnt/docker/mysql/conf 创建my.cnf

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
character-set-server=utf8
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
lower_case_table_names=1
pid-file=/var/run/mysqld/mysqld.pid
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

注意:这里端口用宿主机的3306,数据库也用宿主机的,也就是你服务器的ip和端口,因为我用docker的那个ip和端口数据页面数据显示不出来

#去查看mysql对应的docker容器ip地址,配置到项目
docker inspect c_mysql

4、redis

docker run -id --name=redis -p 6379:6379 redis:5.0.3

5、定义dockerfile,发布springboot项目

将spring boot项目打包,上传到以下目录,并将jar包重命名为blog_api.jar

切换到/mnt/docker/app目录

vim blog_dockerfile

FROM java:8
MAINTAINER mszlu <test@mszlu.com>
ADD ./blog_api.jar /app.jar
CMD java -jar /app.jar --spring.profiles.active=prod

在本目录下构建执行命令

docker build -f ./blog_dockerfile -t app .

6、安装Docker Compose

# Compose目前已经完全支持Linux、Mac OS和Windows,在我们安装Compose之前,需要先安装Docker。下面我 们以编译好的二进制包方式安装在Linux系统中。 
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 设置文件可执行权限 
chmod +x /usr/local/bin/docker-compose
# 查看版本信息 
docker-compose -version

7、创建docker-compose目录

mkdir /mnt/docker/docker-compose
cd /mnt/docker/docker-compose

8、编写 docker-compose.yml 文件

version: '3'
services:
  nginx:
   image: nginx
   container_name: nginx
   ports:
    - 80:80
    - 443:443
   links:
   	- app
   depends_on:
    - app
   volumes:
    - /mnt/docker/docker-compose/nginx/:/etc/nginx/
    - /mnt/mszlu/blog:/mszlu/blog
   network_mode: "bridge"
  app:
    image: app
    container_name: app
    expose:
      - "8888"
    network_mode: "bridge"

9、创建./nginx目录

mkdir -p ./nginx

10、在./nginx目录下 编写nginx.conf文件


user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

11、在nginx下创建conf.d目录,conf.d下创建blog.conf

无域名情况下:

gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 2;
gzip_vary off;
upstream appstream{
     
        server app:8888;
}


server{
        listen 80;
        server_name localhost;
             location /api {
					proxy_pass http://appstream;
               }

              location / {
                        root /mszlu/blog/;
                       index index.html;
               }
              location ~* \.(jpg|jpeg|gif|png|swf|rar|zip|css|js|map|svg|woff|ttf|txt)$ {
                          root /mszlu/blog/;
                          index index.html;
                          add_header Access-Control-Allow-Origin *;
                  }
}

有域名情况下:

gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 2;
gzip_vary off;
upstream appstream{
     
        server app:8888;
}


server{
        listen 80;
        server_name blog.lcheng.fun;
             location /api {
					proxy_pass http://appstream;
               }

              location / {
                        root /mszlu/blog/;
                       index index.html;  
               }
              location ~* \.(jpg|jpeg|gif|png|swf|rar|zip|css|js|map|svg|woff|ttf|txt)$ {
                          root /mszlu/blog/;
                          index index.html;
                          add_header Access-Control-Allow-Origin *;
                  }
}

部署前端

1、项目打包,运行npm run build

 2、打完包后会出现一个dist文件夹,里面有static和index.html,dist.zip自己压缩软件压缩即可

 3、连上我们的服务器

 4、切换到/mnt/mszlu/blog目录

 5、打开xftp把打包的前端文件上传到服务器现在的目录

 6、查看是否上传成功

启动容器

切换到/mnt/docker/docker-compose目录下,使用docker-compose 启动容器

docker-compose up

docker-compose up -d #代表后台启动

测试访问

沐神小站 Find Yourself

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/9793.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

但见新人笑,那闻旧人哭,大衣哥前儿媳陈亚楠好可怜

著名爱国艺人黄安&#xff0c;曾经演唱过一首歌曲&#xff0c;名字叫作《新鸳鸯蝴蝶梦》&#xff0c;歌词写的是相当棒。比如说“由来只有新人笑&#xff0c;有谁听到旧人哭”这句歌词&#xff0c;就是农民歌唱家大衣哥&#xff0c;前儿媳陈亚楠的真实写照。 陈亚楠之所以和大衣…

迈动互联获“ISO20000信息技术服务管理体系认证证书”

近日&#xff0c;迈动互联获得“ISO20000信息技术服务管理体系标准”认证证书&#xff0c;该证书标志着迈动在IT服务管理标准领域的关键技术取得了制度流程规范性和完备性上的进一步提升。 此前&#xff0c;迈动已经获得专精特新企业评定、ISO9001质量管理体系认证、27001信息…

[附源码]java毕业设计基于协同过滤推荐的电影推荐系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Invertible Image Signal Processing 可逆图像信号处理

摘要 未经处理的 RAW 数据是一种非常有价值的图像格式&#xff0c;可用于图像编辑和计算机视觉。然而&#xff0c;由于 RAW 数据的文件大小巨大&#xff0c;大多数用户只能访问经过处理和压缩的 sRGB 图像。为了弥合这一差距&#xff0c;我们设计了一个可逆图像信号处理 (InvIS…

Q701二叉搜索树的插入操作-递归法-刷leetcode日记

声明&#xff1a;问题描述来源leetcode 一、问题描述&#xff1a; 701. 二叉搜索树中的插入操作 难度中等400 给定二叉搜索树&#xff08;BST&#xff09;的根节点 root 和要插入树中的值 value &#xff0c;将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据…

如何支持微软邮箱OAuth2.0认证

近期收到部分使用微软邮箱的客户反映&#xff0c;在EDI系统中无法连接到他们的企业邮箱中&#xff0c;连接过程中报错&#xff1a; IMAP protocol error. 1 NO LOGIN failed…&#xff0c;经确认是微软停用了邮箱的基本验证功能&#xff0c;客户端必须使用OAuth2.0认证&#xf…

如何验证 Kubernetes YAML 文件

原文出自&#xff1a;Armo’s blog 原文作者&#xff1a;Bezalel Brandwinen,&#xff0c;Team Lead at Armo Ltd Kubernetes 在我们现在如何管理容器化应用程序方面占据了中心位置。因此&#xff0c;存在许多定义我们的 的协议&#xff0c;包括 、JSON、INI 等结构。 这使得我…

自动化测试中对数据恢复的思考与实际业务改造实践

在接口自动化测试过程中&#xff0c;构造测试数据是必不可少的一个环节&#xff0c;但如何恢复测试数据也同样值得关注。业内常见的做法有&#xff1a; 1、不恢复&#xff1a;如果是没什么影响的数据&#xff0c;不恢复也无所谓&#xff0c;缺点就是会造成大量数据冗余&#x…

2022 年 10 月区块链操作系统的开发回顾

查看 Cartesi Machine、Cartesi Rollups 和 Noether 的更新正在寻找区块链操作系统组件的最新进展&#xff1f;你找对地方了&#xff01;正如在我们的路线图文章中所描述的那样&#xff0c;我们一直在朝着定期且频繁的更新方向发展着&#xff0c;以便让我们的社区能够及时的了解…

【前端】Ajax

目录 一、服务器对外提供了哪些资源 二、了解Ajax 2.1什么是Ajax 2.2Ajax作用 三、jQuery中的Ajax 3.1$.get()函数的语法 3.2$.post()函数的语法 3.3$.ajax()函数的语法 四、接口 4.1接口的概念 4.2接口测试工具 4.3接口文档 一、服务器对外提供了哪些资源 如果要在…

1.1小程序内置tabbar和自定义tabbar区别

文章目录内置tabbar自定义 tabbar创建文件夹 custom-tab-bar发现小程序自定义tabBar切换颜色总是比点击慢一步switchtab报错“switchTab:fail page “pages/home/pages/message/message” is not found”直接在微信开发文档内搜索&#xff0c;出现的是自定义 tabbar &#xff0…

用HTML+CSS做一个简单好看的校园社团网页

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材&#xff0c;DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 校园班级网页设计 | 我的班级网页 | 我的学校 | 校园社团 | 校园运动会 | 等网站的设计与制作 | HTML期末大学生网页设计作业 HTML&#xff1a;结构 …

C# 零基础搭建一个简单的Asp.Net Core WebAip

下面介绍的vs2022 基于.NET 6 搭建的一个简单的Asp.Net Core WebAip 一、创建aps.net core Web Aip 1、创建一个新的Asp.Net Core WebApi 项目 启动vs2022&#xff0c;在开始页面选择“创建新项目(N)”。 选择从C#的asp.net core WbeApi 作为一个初始的WebApi模板。 点击下…

C++初阶 List的介绍和使用

作者&#xff1a;小萌新 专栏&#xff1a;初阶C 作者简介&#xff1a;大二学生 希望能和大家一起进步 博客简介&#xff1a;本篇博客会简单介绍List和它的用法 List的介绍和使用List介绍List的使用方式List的定义方式List的插入与删除push_front pop_frontpush_back pop_backi…

虚拟机磁盘扩容(纯命令行)

背景&#xff1a;磁盘使用率达到100%&#xff0c;无大数据文件可删除&#xff0c;需要进行磁盘扩容 步骤&#xff1a; 1.虚拟机调高分配给磁盘的大小 2.启动虚拟机&#xff0c;查看磁盘是否扩容 fdisk -l 3.扩容磁盘分区 fdisk /dev/sda 先输入p查看当前情况 输入d&#xf…

Flash、eeprom、rom、ram

存储器 ramrom rom: 不能编程prom: 可以写入一次eprom: 多次擦写, 需要在紫外线照一下eeprom: 任意修改 狭义EEPROM:广义EEPROM: flash nor flash: 字节读, 块擦除nand flash: 页读取, 块擦除 ROM&RAM EEPROM 可随机访问/修改任意字节, 可向每个bit写入0/1, 掉电不丢…

【附源码】计算机毕业设计JAVA传统文化知识竞赛系统

【附源码】计算机毕业设计JAVA传统文化知识竞赛系统 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; JAVA…

推荐一本计算机领域可以发的2区计算机智能医疗类SCI

本期小编给大家推荐的是我处新增的一本TECH SCIENCE PRESS旗下2区智能医疗类SCI. 这本期刊是一本经同行评审的开放获取期刊&#xff0c;出版计算机网络、人工智能、大数据、软件工程、多媒体、网络安全、物联网、材料基因组、集成材料科学以及数据分析、建模、现代功能和多功…

同花顺_代码解析_五彩K线

本文通过对同花顺自带的五彩K线进行解析&#xff0c;用以了解同花顺相关策略设计的思想。 目录 早晨之星 黄昏之星 十字星 长十字星 垂死丁字 射击之星 穿头破脚 红三兵 三只乌鸦 光头阳线 红绿灯 早晨之星 行号 1 a1 -> K线实体长度是开盘价的0.5%以下&…

MAX25————用vray还原模型在Substance Painter的光照以及材质效果

现在很多小伙伴喜欢在Substance Painter&#xff08;俗称SP&#xff09;里面做贴图。但是经常很苦恼&#xff0c;sp里做出的效果&#xff0c;导出来&#xff0c;放到unity或者max里面再渲染&#xff0c;光照跟材质效果就都变了。其实很简单&#xff0c;做到以下几点。就可以还原…