当前位置: 首页
编程语言
Ubuntu部署Golang项目从环境搭建到运行的详细步骤教程

Ubuntu部署Golang项目从环境搭建到运行的详细步骤教程

热心网友 时间:2026-06-17
转载

在Ubuntu部署Go项目需先安装Go环境,再用Git克隆代码,执行GoBuild编译成可执行文件并运行。然后用Export设置环境变量,用Systemd创建服务以实现后台运行和开机自启,用Ufw开放端口,用Journalctl查看日志。此外需确认编译成功及服务正常启动。

在Ubuntu上部署一个Golang项目,说起来其实并不复杂,只要按部就班走完这几个关键步骤,基本就能跑起来。下面就把完整的流程拆开来讲,每一步都有具体的命令和说明,照着操作就行。

golang项目如何在ubuntu部署

  1. 安装Go环境
    先确认你的Ubuntu系统里有没有装Go。如果还没装,终端里敲两行命令就搞定:

    sudo apt update
    sudo apt install golang-go

    装完之后,运行go version检查一下版本,看到输出就说明环境就绪了。

  2. 获取项目代码
    git把项目代码拉到服务器上。比如你的仓库地址是https://github.com/your-username/your-repo.git,那就这样操作:

    git clone https://github.com/your-username/your-repo.git
    cd your-repo

    这一步没什么悬念,记得先装好git(sudo apt install git)。

  3. 进入工作目录
    直接cd到项目根目录,这就是接下来的编译和运行主场。

  4. 编译项目
    在项目根目录下执行go build,指定一下输出文件名:

    go build -o myapp

    -o myapp表示编译出来的可执行文件叫myapp,你可以按自己的喜好改成别的名字。如果项目依赖比较多,第一次编译可能会稍慢,耐心等就好。

  5. 运行项目
    编译完成后,直接运行生成的可执行文件:

    ./myapp

    如果一切正常,程序就起来了。不过这种前台运行方式一关终端就停了,不太适合长期服务。

  6. 设置环境变量(如果需要)
    很多应用会依赖一些环境变量(比如数据库连接串、密钥等)。可以在运行前通过export临时设置:

    export MY_ENV_VAR=value

    更推荐的方式是把这些变量写到项目的配置文件中,或者用systemd的服务文件来管理(看下一步)。

  7. 使用systemd管理应用(可选)
    想让应用在后台稳定运行、开机自启?用systemd是个好选择。先创建一个服务配置文件:

    sudo nano /etc/systemd/system/myapp.service

    在里面填入以下内容(根据实际情况调整路径和用户):

    [Unit]
    Description=My Go Application
    After=network.target
    
    [Service]
    ExecStart=/path/to/your/myapp
    Restart=always
    User=yourusername
    Group=yourgroupname
    Environment=MY_ENV_VAR=value
    
    [Install]
    WantedBy=multi-user.target

    保存退出后,先让systemd重新加载配置:sudo systemctl daemon-reload,然后启动服务:

    sudo systemctl start myapp

    设置开机自启:

    sudo systemctl enable myapp

    检查服务运行状态:

    sudo systemctl status myapp

    这样你的Go应用就变成一个系统服务了,稳定又省心。

  8. 配置防火墙(如果需要)
    如果你的应用需要对外提供网络服务(比如Web API),记得开放对应端口。比如应用监听8080端口,那就用ufw放行:

    sudo ufw allow 8080/tcp

    这条命令仅允许TCP流量通过8080端口。如果防火墙没启动,先sudo ufw enable打开它。

  9. 监控日志
    应用跑起来后,总得看看日志吧?如果用了systemd,用journalctl就能轻松查看:

    journalctl -u myapp

    加上-f可以实时跟踪最新日志:journalctl -u myapp -f

以上就是Ubuntu上部署Golang项目的一套标准流程。当然,实际项目可能会涉及数据库、缓存、反向袋里等额外配置,但核心的部署骨架就是这些。只要每一步都走稳,基本不会出什么大问题。

来源:https://www.yisu.com/ask/59611265.html

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
Go微服务熔断后指数退避重试机制配置

Go微服务熔断后指数退避重试机制配置

熔断器打开后应进入半开状态,再对试探请求启用指数退避重试,避免无效重试。使用gobreaker控制请求准入,backoff控制试探间隔,并启用抖动防止脉冲流量。重试和熔断需分层,重试只针对临时错误,熔断统计重试后的最终结果。

时间:2026-07-14 06:59
Java多重上界通配符无法直接写入语法的根本原因

Java多重上界通配符无法直接写入语法的根本原因

Java通配符仅支持单一上界,如?extendsA,无法直接使用多重上界。多重上界(如TextendsA&B)仅适用于泛型类型参数声明,这是Java泛型设计中的语法限制,旨在简化类型系统。若需多约束,需通过类型参数间接实现。

时间:2026-07-14 06:59
Golang微服务中集成Argo实现GitOps持续发布

Golang微服务中集成Argo实现GitOps持续发布

Go微服务与ArgoCD边界清晰,Application路径指向manifests目录而非源码。镜像更新通过CI自动提交或argocd-image-updater实现,避免写死latest标签。readinessProbe需合理配置initialDelaySeconds与periodSeconds,确保同步顺畅。

时间:2026-07-14 06:59
Java中AbstractList的快速失败机制中并发修改检查方法的执行时机

Java中AbstractList的快速失败机制中并发修改检查方法的执行时机

在AbstractList迭代器中,每次调用next()、remove()、previous()、set()或add()时,都会先执行checkForComodification,通过比较modCount与expectedModCount检测并发修改,确保操作时视图一致性,防止状态错乱。

时间:2026-07-14 06:59
Python中statistics模块快速计算统计学中位数的方法与步骤

Python中statistics模块快速计算统计学中位数的方法与步骤

使用Python的statistics median()计算中位数需注意:不接受空列表,否则抛出StatisticsError异常;不自动过滤None或非数字值;传入大型生成器可能耗尽内存或导致性能下降。建议先过滤脏数据并转为列表,再计算,同时明确空数据时的处理策略。

时间:2026-07-14 06:59
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 热门数据榜