gin项目部署到服务器并后台启动

news2024/10/6 18:32:05

文章目录

  • 一、安装go语言环境的方式
    • 1.下载go安装包,解压,配置环境变量
    • 2.压缩项目上传到服务器并解压
    • 3.来到项目的根目录
    • 3.开放端口,运行项目
  • 二、打包的方式
    • 1.在项目的根目录下输入以下命令
    • 2.把打包好的文件上传到服务器
    • 3.部署网站
    • 4.ssl证书


本着能跑就行的原则,这个博文主要是教你部署到linux服务器上面的几种方式,go语言的项目是打包后不需要go环境也能跑的。

本人主机用的win10,操作系统用的是centos7.9,远程连接主机软件用的xsell,文件上传下载工具用的是xftp,服务器是在阿里云买的。
国内的GPT用的是kimi和通义千问。如果你用的是乌班图操作系统,你就可以复制粘贴命令问gpt,这个命令在乌班图是什么。

一、安装go语言环境的方式

1.下载go安装包,解压,配置环境变量

在这里要注意,我们的项目都是本地开发好的,你要选择的安装包要适应你的go.mod的文件,言外之意,选择合适的安装包你不需要改go.mod了。我们下载到/user/local/src里面
(有可能你下载不下来,如果下载不下来,请直接去官网下载安装包到本地之后,使用文件上传工具上传到服务器)

wget https://golang.google.cn/dl/go1.21.5.linux-amd64.tar.gz -P /usr/local/src

解压到/user/local里面

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

配置环境变量

vim etc/profile
# 输入以下信息并保存
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin

重新加载,让环境变量生效

source /etc/profile

验证

go version

2.压缩项目上传到服务器并解压

如果你的项目使用了,MySQL,Redis,请在你的服务器上也安装这些东西,并且在代码中也修改对应的账户和密码以适应你的服务器。

我的建议是,使用宝塔或者1panel直接安装就行了。1panel因为是使用docker来管理这些应用,所以,你需要配置docker的镜像源。

1panel在线安装

记得开放1panel对应的端口。宝塔也是

在这里插入图片描述

在我们本地找到项目的文件夹,进行压缩,我个人习惯压缩成zip,因为方便解压缩。

压缩工具使用WinRAR或者bandzip等等都行,只要能压缩成zip无论用什么都行。(不会用压缩工具的去百度)

使用文件传输工具进行上传到服务器。
你可以使用任何的FTP工具对文件进行上传,如果电脑上有现成的工具,直接上传就行了,下面的内容是写给没有工具的。因为获取工具的安装包还挺麻烦的。

如果你没有类型XFTP之类的工具,我的建议是使用宝塔,或者1panel这样的运维管理工具,里面自带上传功能。因为我用的是1panel,所以这里只写1panel。

下面是他们的安装网站,你只需要打开这个网站。

1panel在线安装

选择你自己的操作系统,点击复制。

可视化界面相信你会操作的.我把项目是上传到了/opt目录。

在这里插入图片描述

在这里插入图片描述

安装解压缩命令

sudo yum install unzip

解压压缩包

unzip 压缩包的名称

3.来到项目的根目录

cd 项目的根目录

这个是我的目录结构,请注意main,go,我项目启动都放在这个文件里面,这个位置很重要,因为我们把项目跑起来需要这个文件.

在这里插入图片描述安装需要的包,输入下面的命令后就需要等待。

go mod tidy

3.开放端口,运行项目

在运行之前,你需要确保几件事情
1.你的gin服务端口开放了吗?端口开放一般直接去你买服务器的官网,里面有控制台,找到安全组,端口公网开放即可。这个要么百度,要么等我再写一篇吧。

2.用到MySQL了吗?用到了的话,服务器的MySQL安装好了吗?代码里面的连接MySQL的代码和密码改成服务器的了吗?MySQL的端口对外开放了吗?如果你使用1panel,应用里面的端口对外开放也要打开。

3.用到Redis了吗?用到Redis的话,服务器的redis安装好了吗?代码里面的连接redis的密码改了吗?端口对外开放了吗?如果你使用1panel,应用里面的端口对外开放也要打开。

4.go真的安装好了吗?验证了吗?跟你的项目适配吗?运行需要的包都安装好了吗?

5.代码有没有bug?项目在本地能不能正常的运行?

如果以上都OK的话,继续进行下面的东西。

nohup go main.go&

二、打包的方式

1.在项目的根目录下输入以下命令

set GOOS=linux
set GOARCH=amd64
go build

需要注意的是,配置文件是不会被打包的,所以在使用viper加载配置文件的时候,注意好路径问题。

2.把打包好的文件上传到服务器

步骤跟上面一样,这里就不写了

3.部署网站

这里使用的宝塔部署,因为方便,能顺便解决后面ssl证书问题
(怎么安装宝塔就不说了,百度,然后安装完后记得开放对应的端口以及把面板账户登录信息给保存下来方便使用)

点击网站
在这里插入图片描述

点击go项目,点击添加go项目
在这里插入图片描述

在这里插入图片描述

4.ssl证书

上面添加完后,就有这个设置,点击设置

在这里插入图片描述

点击ssl,点击 let’s Encrypt,点击我们的域名,点击申请证书,就能解决ssl证书的问题了
在这里插入图片描述

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

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

相关文章

UserWarning: IPython History requires SQLite, your history will not be saved

UserWarning: IPython History requires SQLite, your history will not be saved 很久未打开pycharm,控制台出现爆红 解决方法: 重启pycharm,就好啦!!!我猜测可能是上次pycharm没有关闭就电脑关机&…

2024亚洲国际餐饮展览会(北京餐饮展|火锅展|预制菜展会)

2024北京餐饮展会,2024北京食材展会,2024北京火锅展会,2024北京火锅食材展会,2024北京预制菜展会,2024北京预制食材展会, 2024亚洲国际餐饮展览会(北京餐饮展|火锅展|预制菜展会) …

【pytorch13】激活函数及梯度

什么是激活函数 计算机科学家借鉴生物的神经元机制发明了计算机上的模型,这个模型与生物的神经元非常类似 激活的意思就是z变量要大于0,这一个节点才会激活,否则就会处于睡眠状态不会输出电平值 该激活函数在z0处不可导,因此不能…

[k8s生产系列]:k8s集群故障恢复,etcd数据不一致,kubernetes集群异常

文章目录 摘要1 背景说明2 故障排查2.1 查询docker与kubelet状态2.2 查看kubelet服务日志2.3 重启docker与kubelet服务2.3.1 首先kubelet启动起来了,但是报错master节点找不到2.3.2 查询kubernetes集群服务,发现etcd与kube-apiserver均启动异常 2.4 etcd…

Aavegotchi的Gotchiverse新地图: 沉睡的野兽即将苏醒!

Gotchi 守护者们,准备好了,因为我们要大开杀戒了! 加入我们吧(后果自负!),我们将深入Gotchiverse,前往奥姆夫山--我们虚拟世界中所有 FOMO 的炽热源头。 请继续阅读,了解…

vue中的坑·

常规 1.使用watch时,immediate true会在dom挂载前执行 2.使用this.$attrs和props 可以获取上层非原生属性(class/id) 多层次嵌套引用 设置的时候直接赋值,修改的时候即使用的双向绑定加上$set / nextick / fouceUpdate都不会同步…

关于Ubuntu系统中.config文件夹如何找到

Ubuntu中QT项目使用了setting保存配置,但是找不到配置文件保存了在哪里,找了一下: 因为QT里取的名字是: 于是下载everything搜索Nio,发现目录为/home/nio/.config 虽然已经下载了everything找到了,但是发现…

spring boot读取yml配置注意点记录

问题1:yml中配置的值加载到代码后值变了。 现场yml配置如下: type-maps:infos:data_register: 0ns_xzdy: 010000ns_zldy: 020000ns_yl: 030000ns_jzjz: 040000ns_ggglyggfwjz: 050000ns_syffyjz: 060000ns_gyjz: 070000ns_ccywljz: 080000ns_qtjz: 090…

通讯录(C语言详细版)

1. 前言 通讯录是在动态顺序表的基础上实现的,其实就是顺序表的每个元素存储的不再是数字,而是存储一个联系人的结构体,所以如果有些小伙伴看不懂的话,可以移步参考一下动态顺序表的实现:顺序表(C语言详细…

强强联合!当RAG遇到长上下文,滑铁卢大学发布LongRAG,效果领先GPT-4 Turbo 50%

过犹不及——《论语先进》 大学考试时,有些老师允许带备cheet sheet(忘纸条),上面记着关键公式和定义,帮助我们快速作答提高分数。传统的检索增强生成(RAG)方法也类似,试图找出精准的知识片段来辅助大语言模型(LLM)。 但这种方法其实有问题…

Oracle Database 23ai新特性:DB_DEVELOPER_ROLE角色

角色介绍 从 Oracle Database 23ai 开始,新角色“DB_DEVELOPER_ROLE”允许管理员快速分配开发人员为 Oracle 数据库设计、构建和部署应用程序所需的所有必要权限。(包括构建数据模型所需的系统权限以及监视和调试应用程序所需的对象权限)。通…

【期末复习】数据库系统概论(附带考点汇总)

第1章.绪论 目录 第1章.绪论1.1. 数据库系统概述1.1.1.基本概念1.1.2.产生和发展 1.2.概念模型1.2.1.三种模型1.2.2.概念模型1.2.3.关系模型 1.3.数据库系统结构1.3.1三级模式结构1.3.2.两级映像与数据独立性 第2章.关系型数据库2.1.关系2.2.关系操作2.2.1.基本关系操作2.2.2.关…

价格很实惠,希喂、爱立方、生生不息主食冻干抗得住实测吗?

在挑选主食冻干时,许多宠物主人都会感到头疼。尽管主食冻干相较于普通猫粮具有诸多优势,但其价格也相对高昂。这导致许多宠物主人担心高价购买的主食冻干可能营养价值并不理想。然而,在选择时,我们还需要考虑其他重要因素&#xf…

精密微型导轨加工工艺流程!

微型导轨是一种用于小型化机械设备和机床上的一种传动部件,多用于精密设备上,主要作用是支撑和导向滑块运动。想要让微型导轨长期保持高精度、高耐磨、高寿命、高效率运作,加工工艺是非常关键的步骤。 微型导轨的制造工艺主要包括机械加工、热…

三、【源码】Bean有参构造实例化

源码地址:https://github.com/spring-projects/spring-framework 仓库地址:https://gitcode.net/qq_42665745/spring/-/tree/03-parameter-constructor-instantiation Bean有参构造实例化 有参构造的实例化分两种: java自带的反射cglib代…

手把手教程教你_一键获取安居客全国小区数据

软件简介 安居客二手房小区全国实时数据,含小区名称、价格、地区、地址、商圈、标签、经纬度、物业类型、交易权属、竣工时间、产权年限、开发商、总户数、总建面积、绿化率、容积率、统一供暖 供水供电、停车位、停车费、物业费、物业公司 车位管理费、在售房源、…

应用案例 | 基于物联网工控屏的工业离心机设备监控系统

案例概况 客户:博鲁班特(BROADBENT) 应用产品:宏集物联网工控屏 应用场景:离心机设备监控系统 一、前言 在现代工业生产中,离心机作为关键的分离设备,在生产过程中扮演着至关重要的角色。随…

创新驱动,智享未来:电动车仪表盘之蓝牙芯方案

电动车行业不断发展的浪潮中,我们自豪地推出引领时代的电动车仪表盘蓝牙芯方案,为您的骑行之旅带来前所未有的智能与便捷。 精准掌控,一目了然 我们的蓝牙芯方案搭载了高性能BLE 5.0蓝牙芯片-HS6621CG-C 内核ARM Cortex-M4F, max 64MHZ,SRAM…

期权开户零门槛怎么操作?期权不满50w的开户方式

今天带你了解期权开户零门槛怎么操作?期权不满50w的开户方式。在股票期权市场上,期权交易是一种非常受欢迎的投资方式。它不仅可以增加投资组合的多样性,还可以为投资者提供一定的保护和利润机会,比如通过买入认股期权做空对冲大盘…

新建vue3项目

提示:请确定自己已将安装好环境以及一系列用到的工具包,例如node(10以上),pnpm或npm vue官网:https://cn.vuejs.org/ vue-cli官网:Vue CLI vite官网:Vite | 下一代的前端工具链 …