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

文章目录

  • 一、安装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证书的问题了
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Web前端开发——HTML快速入门

HTML:控制网页的结构CSS:控制网页的表现 一、什么是HTML、CSS (1)HTML (HyperText Markup Languaqe:超文本标记语言) 超文本:超越了文本的限制,比普通文本更强大。除了…

vienna整流器过零畸变原因分析

Vienna整流器是一种常见的三电平功率因数校正(PFC)整流器,广泛应用于电源和电能质量控制领域。由于其高效率、高功率密度和低谐波失真的特点,Vienna整流器在工业和电力电子应用中具有重要地位。然而,在实际应用中&…

新手拍短视频的些许建议

1、尽早行动,拒绝完美主义,有手机就能上车,一开始别花太多时间在打磨细节上。总是要准备好了后再做,就总比别人慢一步,可能永远也追不上了; 2、坚持发,度过难熬的启动期就行,不要走…

比Proxmox VE更易用的免费虚拟化平台

之前虚拟化一直玩Proxmox VE,最近发现一个更易用的虚拟化软件CSYun,他与Proxmox VE类似,都是一个服务器虚拟化平台。它不像VMware ESXi那么复杂,对于个人使用者和中小企业是一个比较好的选择。 这个软件所在的网址为:…

安装 VisualSVN Server提示HTTP服务无法启动的问题解决

安装 VisualSVN Server 版本:VisualSVN-Server-5.4.0-x64 安装包在安装到一半的时候,弹窗提示:HTTP服务无法启动,网上找了一大堆,说是service里面更改用户为本地用户什么的都没用用,点右键也无法启动。 …

基于Java的壁纸网站设计与实现

💗博主介绍💗:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示:文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

Spring MVC 中 使用 RESTFul 实现用户管理系统

1. Spring MVC 中 使用 RESTFul 实现用户管理系统 文章目录 1. Spring MVC 中 使用 RESTFul 实现用户管理系统2. 静态页面准备2.1 user.css2.2 user_index.html2.3 user_list.html2.4 user_add.html2.5 user_edit.html 3. SpringMVC环境搭建3.1 创建module:usermgt3…

解决mysql数据库连接报错:Authentication plugin ‘caching_sha2_password‘ cannot be loaded

解决mysql数据库连接报错:Authentication plugin ‘caching_sha2_password’ cannot be loaded OperationalError: (2059, “Authentication plugin ‘caching_sha2_password’ cannot be loaded: /usr/lib/mysql/plugin/caching_sha2_password.so: cannot open sha…

人脸重建迁移攻击FRTA:绕过各种未见过的面部识别系统

随着人脸识别系统在安全关键环境中的部署日益增多,威胁行为者正在开发针对各种攻击点的复杂攻击策略。在这些攻击策略中,面部重建攻击是一个主要的威胁。面部重建攻击的主要目的是创建伪造的生物特征图像,这些图像类似于存储的生物特征模板中…

vue中数组出现__ob__: Observer属性,导致不能正确使用问题解决

直接上图,如下图,数组中出现__ob__: Observer属性,导致无法取值。 解决方案为:JSON.parse(JSON.stringify(数组变量名))深拷贝数组,重新生成一个可枚举数组。 // 处理代码如let tempIds JSON.parse(JSON.stringify(i…

实现统计n个数以下质数的个数

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h>int main() {int n 0;scanf("%d", &n);int sum 0;for (int i 1; i < n; i){for (int j 2; j < i; j) {if (i % j 0){sum;break;}}}printf("%d", n - sum-1);return 0; } n为输…

yum命令提示 错误:rpmdb: BDB0113 Thread/process 4153/139708200269632

一、报错信息 [rootDawn yum.repos.d]# yum clean all 错误&#xff1a;rpmdb: BDB0113 Thread/process 4153/139708200269632 failed: BDB1507 Thread died in Berkeley DB library 错误&#xff1a;db5 错误(-30973) 来自 dbenv->failchk&#xff1a;BDB0087 DB_RUNRECOVE…

记录通过Cloudflare部署属于自己的docker镜像源

引言 由于最近国内无法正常拉取docker镜像&#xff0c;然而找了几个能用的docker镜像源发现拉取回来的docker镜像不是最新的版本&#xff0c;部署到Cloudflare里Workers 和 Pages&#xff0c;拉取docker 镜像成功&#xff0c;故记录部署过程。 部署服务 登录Cloudflare后&…

鸿蒙开发HarmonyOS NEXT (三) 熟悉ArkTs

一、自定义组件 1、自定义组件 自定义组件&#xff0c;最基础的结构如下&#xff1a; Component struct Header {build() {} } 提取头部标题部分的代码&#xff0c;写成自定义组件。 1、新建ArkTs文件&#xff0c;把Header内容写好。 2、在需要用到的地方&#xff0c;导入…

如视“VR+AI”实力闪耀2024世界人工智能大会

7月4日&#xff0c;2024世界人工智能大会暨人工智能全球治理高级别会议&#xff08;以下简称为“WAIC 2024”&#xff09;在上海盛大开幕&#xff0c;本届大会由外交部、国家发展和改革委员会、教育部等部门共同主办&#xff0c;围绕“以共商促共享 以善治促善智”主题&#xf…

算法力扣刷题 三十一【150. 逆波兰表达式求值】

前言 栈和队列篇。 记录 三十一【150. 逆波兰表达式求值】 一、题目阅读 给你一个字符串数组 tokens &#xff0c;表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意&#xff1a; 有效的算符为 、-、* 和 / 。 每个操作…

初尝PaddleOCR识别图片中的文字

引言 PaddleOCR是一个基于飞桨深度学习框架的OCR工具包&#xff0c;它集成了丰富的文字检测、识别和后处理算法&#xff0c;能够高效、准确地识别出图片中的文字。 说明 OpenVINO.NET是一个由开源开发者sdcb发布的&#xff0c;一个个强大的工具集&#xff0c;通过优化神经网…

科普文:Linux服务器性能调优概叙

概叙 Java web应用性能分析之服务端慢和优化概叙_cpu飙高java-CSDN博客 Java web应用性能分析之【CPU飙升分析概述】_web页面性能分析cpu占满是因为死循环,还是循环过多-CSDN博客 在我们的软件服务中&#xff0c;软件部署的服务器&#xff0c;一般都是linux服务器&#xff0c…

【每天学会一个渗透测试工具】SQLmap安装教程及使用

&#x1f31d;博客主页&#xff1a;泥菩萨 &#x1f496;专栏&#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 ✨SQLmap简介 Sqlmap是一款开源的渗透测试工具 &#x1f680;下载及安装 下载地址&#xff1a;http://sqlmap.org/ windo…

两个Activity之间切换时UI部分重叠

书籍 《第一行代码 Android》第三版 开发 环境 Android Studio Jellyfish | 2023.3.1 setContentView android studio自动生成的SecondActivity.kt中自动生成的代码中已经绑定了second_layout.xml的布局资源&#xff0c;通过代码&#xff1a;setContentView(R.layout.secon…