使用阿里云服务器部署(完整步骤)

news2024/12/23 13:55:30

部署项目前需要环境:阿里云云服务器ECS,宝塔面板

阿里云云服务器ECS实例创建过程

  1. 先登录阿里云网站注册账号,进入控制台左侧导航栏中云服务器ECS页面
  2. 根据自己的需求去创建一个新的实例(需要付费)
  3. 如果是学生的话,完成认证之后可以免费试用一个月,过期之前完成实验和测试任务拿到证书还可以再免费使用6月。

添加实例安全组
服务器是需要端口放行的,否则你的端口将无法访问,因为安全需要,所以云服务器存在安全组这个东西。常用需要放行的端口:tomcat 8080端口,mysql 3306端口 https 443和80端口
在这里插入图片描述

基于阿里云安装宝塔面板

注意事项:出于性能考虑,服务器的操作系统一定要选Linux版本(centos或者ubuntu),不要选Window。

  1. 阿里云的云服务器,即阿里云ECS,默认的用户名 root,密码的话建议修改。

  2. 远程连接云服务器,使用用户名密码登录workbench,使用的是公网ip
    在这里插入图片描述

  3. 输入宝塔安装命令

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

中途会弹出是否安装,输入y,按照提示继续安装

不同系统的安装命令不同,具体可以在宝塔官网查看

https://www.bt.cn/new/download.html
在这里插入图片描述

宝塔面板安装成功后,如下图所示:

在这里插入图片描述

上面三个是很重要的参数,一定要记住!

打开上面的宝塔链接,输入用户名和密码,进入宝塔面板:
在这里插入图片描述

LNMP: Linux + Nginx + Mysql + PHP
LAMP: Linux + Apache + Mysql + PHP

两者区别:静态内容多建议选择Nginx内存占用更少。 动态内容较多建议选择Apache更稳定。

修改登录宝塔的路径以及用户名和,密码,重新登录即可

阿里云ecs参考视频:https://www.bilibili.com/video/BV12b4y18725?p=1&vd_source=d14cc35dc785edf94050c3a6a05600fc

宝塔面板部署go项目

我们都知道,部署项目,其实就是他的二进制文件,基本都是有多种方式部署:

  1. 将项目文件打包进入服务器,并下载go环境,build该go项目,并run起来;即和本地跑项目没太大区别;但是该方法不太适合大型的项目,因为build会占用较大的内存,而服务器内存通常都较小,会有概率失败,而且下载各种环境也是一个弊端,日常项目自然是没有问题的;
  2. 使用docker部署项目到服务器;
  3. 事先生成项目的linux版本二进制文件为main,单独将main拉进服务器,并配置启动项,若没有问题可直接运行,直接少了build和下载环境的步骤;

1.手动配置部署

环境配置

在go官方下载linux的go包,网址:

All releases - The Go Programming Language (google.cn)

下载完毕后上传到服务器

image-20240324111614365

然后将文件解压(解压地址可以自己设置)

tar -C /usr/local -xzf go1.22.1.linux-amd64.tar.gz

将Go语言的可执行文件路径添加到系统的PATH环境变量中,以便在任何位置都能够访问到Go相关的命令。

echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc

然后运行以下命令使其生效:

source ~/.bashrc

验证安装: 执行以下命令验证Go语言是否成功安装:

go version

如果输出Go的版本信息,则表示安装成功。

然后设置go的代理地址,建议设置,不然可能会下载库很慢;

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn

将源代码拉入服务器并生成项目二进制文件

1.进入项目指定目录,上传自己本地项目的压缩包,效果图如下,并解压成文件夹;

上传项目文件
进入项目根目录,打开终端,输入go mod tidy下载项目需要的依赖库,再使用go build main.go生成二进制可执行文件main;
在这里插入图片描述

创建项目

image-20240324112704223

将项目生成的二进制main文件填入(仿照下边这个)

在这里插入图片描述

保存之后使用ip+端口+路由就可以访问了;

若想要配置域名,需要点击域名管理,增加域名,并申请ssl证书;

如果有数据库,也需要建立对应的数据库用户和密码,并将表结构导入;(同代码配置文件中写的一致);

2docker配置部署

为了能够更完整的演示docker部署,教程会先演示在本地生成docker镜像并提交到dockerhub,然后在服务器上拉取先前提交的docker镜像生成容器运行;

以一个启动main.go文件启动的项目示例

前置条件:

1.windows上下载docker desktop

2.注册dockerhub账号,并在本地登录dockerhub

好了,下边是演示:

首先要保证你的项目可以运行,新建一个Dockerfile文件,输入以下基础go项目配置

输入:image-20240324142720131

# 基于 golang 镜像构建 Docker 容器
FROM golang:latest

# 设置工作目录为 /app
WORKDIR /app

# 将当前目录下的所有文件复制到工作目录 /app 中
COPY . .

# 编译 Go 语言程序
RUN go build -o main .

# 暴露容器的端口,如果您的 Go 语言程序监听了某个端口,则需要暴露该端口
EXPOSE 8080

# 运行 Go 语言程序
CMD ["./main"]

在终端输入:

docker login 

若第一次登录是需要输入账号密码;

生成docker镜像

docker build -t test:v1

-t 设置镜像名称和版本号 test是镜像名称 v1是版本号;

先测试运行下

docker run -p主机端口号:容器端口号 -d --name 容器名 镜像名:版本号;

如果项目能运行就将其推送到dockerhub;:

标记你的本地镜像以指定 Docker Hub 中的目标仓库和标签:

docker tag [本地镜像名称] [你的 Docker Hub 用户名]/[目标仓库名称]:[标签]

最后,推送镜像到 Docker Hub:

docker push [你的 Docker Hub 用户名]/[目标仓库名称]:[标签]

然后进入服务器,同样输入docker login登录

从 Docker Hub 拉取并运行镜像:

使用以下命令从 Docker Hub 拉取镜像:

docker pull [你的 Docker Hub 用户名]/[目标仓库名称]:[标签]

拉取完成后,你可以运行该镜像:

docker run [你的 Docker Hub 用户名]/[目标仓库名称]:[标签]

此时你的项目就在服务器上运行了,嗯,非常的方便;

3可执行文件配置

第三种是先生成main可执行文件,只将可执行文件拉入服务器中,之后过程和方法一配置网站一样…

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

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

相关文章

粤嵌—2024/5/13—删除排序链表中的重复元素(✔)

代码实现: /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* deleteDuplicates(struct ListNode *head) {if (head NULL || head->next NULL) {return head;}struct ListNode *…

FFmpeg开发笔记(三十一)使用RTMP Streamer开启APP直播推流

RTMP Streamer是一个安卓手机端的开源RTMP直播推流框架,可用于RTMP直播和RTSP直播,其升级版还支持SRT直播(腾讯视频云就采用SRT协议)。RTMP Streamer支持的视频编码包括H264、H265、AV1等等,支持的音频编码包括AAC、G7…

fastadmin二次开发 修改默认的前端弹出样式

需要修改fastadmin后台默认的弹出提示样式效果: 在项目里搜索这个关键词:Toastr 首先这个文件,里面的success和error就是弹出提示的方法。 public/assets/js/fast.js 然后是下面这个文件: public/assets/js/require-form.js 你…

ROS2入门21讲__第20讲__RQT:模块化可视化工具

目录 前言 rqt介绍 日志显示 图像显示 发布话题数据/调用服务请求 绘制数据曲线 数据包管理 节点可视化 前言 ROS中的Rviz功能已经很强大了,不过有些场景下,我们可能更需要一些简单的模块化的可视化工具,比如只显示一个摄像头的图像…

【北京市政府网_注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

CDC 数据实时同步入湖的技术、架构和方案(截至2024年5月的现状调研)

近期,对 “实时摄取 CDC 数据同步到数据湖” 这一技术主题作了一系列深入的研究和验证,目前这部分工作已经告一段落,本文把截止目前(2024年5月)的研究结果和重要结论做一下梳理和汇总。为了能给出针对性的技术方案&…

深入分析 Android Activity (六)

文章目录 深入分析 Android Activity (六)1. Activity 的权限管理1.1 在 Manifest 文件中声明权限1.2 运行时请求权限1.3 处理权限请求结果1.4 处理权限的最佳实践 2. Activity 的数据传递2.1 使用 Intent 传递数据2.2 使用 Bundle 传递复杂数据 3. Activity 的动画和过渡效果3…

照片处理软件哪个好?爆款图片编辑工具分享

照片处理软件哪个好?在数字时代,照片处理软件已经成为我们日常生活和工作中不可或缺的工具。无论是为了美化照片、修复旧照,还是进行专业的图像处理,都有各种软件可以满足我们的需求。以下是一些值得一试的照片处理软件&#xff0…

海山数据库(He3DB)代理ProxySQL使用详解:(二)功能实测

读写分离实测 ProxySQL官方demo演示了三种读写分离的方式:使用不同的端口进行读写分离、使用正则表达式进行通用的读写分离、使用正则和digest进行更智能的读写分离。最后一种是针对特定业务进行的优化调整,也可将其归结为第二种方式,下边分…

IO流:字节流 字符流 缓冲流详解

IO流:字节流 字符流 缓冲流详解 📚 【Java】IO流:字节流 字符流 缓冲流详解 📚摘要引言一、“流”的概念1. “流”的分类1.1 输入流和输出流1.2 字节流和字符流字节和字符的区别?为什么要有字符流? 1.3 节点…

爬虫实战教程:深入解析配乐网站爬取1000首MP3

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、引言 二、实战前准备 1. 选择目标网站 2. 分析网页结构 三、爬虫工作流程详解 1. 发…

Web上机:JSP+Servlet+JDBC的交互流程

目录 需求与设计 基础需求: 项目结构: 项目逻辑: 运行图示: 代码实现 Login.jsp InsertServlet SelectServlet Table.jsp user mysql表结构 Web开发技术迭代速度日新月异,对于技术的更新往往是基于底层一…

Node.js笔记(万字总结)

目录 前言 1.node介绍与使用 1.1 Node介绍 1.2 node.js的优势 1.3 node的安装 1.4 检验是否成功安装 1.5 第一个应用 1.5.1 服务器代码 server.js 1.5.2 完整代码 1.5.3 运行 1.5.4 测试 2.获取参数 3.模块系统 1.模块介绍 2.xiaoyu.js 3.xiaoyu.js完整代码 4…

Midjourney 推出Style Tuner工具 ,统一风格,提升创作效率!

Midjourney 由前 Magic Leap 程序员大卫 - 霍尔茨(David Holz)构思,于 2022 年夏天推出,在独立消息应用 Discord 的服务器上吸引了超过 1600 万用户,并由一个小规模的程序员团队不断更新,推出了包括平移、扩…

重温!瑞幸崩盘时的狂欢,我的股票盈利170%,陆正耀资本局大起底

瑞幸咖啡 瑞幸2019年5月,仅用了18个月就完成了上市。 不到1年,2020年3月戏剧化反转,被爆造假 2019年净收入虚增21亿,2季度2.5亿,3季度7亿、4季度11.7亿。 2019年成本支出虚增13亿,2季度1.5亿元&#xf…

UE4/UE5像素流送云推流:多人访问不稳定、画面糊、端口占用多等

UE4/UE5想要实现网页访问,很多工程师会选择guan方的像素流送。但这个技术要求在模型开发初期就接入。对于一些已有UE模型是无法进行流化的。虽然也可以解决新UE模型的网页访问问题,但在实际的应用中,点量云流也收到很多反馈说,使用…

重生之 SpringBoot3 入门保姆级学习(02、打包部署)

重生之 SpringBoot3 入门保姆级学习(02、打包部署) 1.6 打包插件1.7 测试 jar 包1.8 application.properties 的相关配置 1.6 打包插件 官网链接 https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html#getting-starte…

短视频矩阵系统4年独立开发正规代发布接口源码搭建部署开发

1. 短视频矩阵源码技术开发要求及实现流程: 短视频矩阵源码开发要求具备视频录制、编辑、剪辑、分享等基本功能,支持实时滤镜、特效、音乐等个性化编辑,能够实现高效的视频渲染和处理。开发流程主要包括需求分析、技术选型、设计架构、编码实…

专家解读 | NIST网络安全框架(2):核心功能

NIST CSF是一个关键的网络安全指南,不仅适用于组织内部,还可帮助管理第三方网络安全风险。CSF核心包含了六个关键功能——治理、识别、保护、检测、响应和恢复,以及与这些功能相关的类别和子类别。本文将深入探讨CSF核心的主要内容&#xff0…