Ubuntu部署Golang项目从环境搭建到运行的详细步骤教程
在Ubuntu部署Go项目需先安装Go环境,再用Git克隆代码,执行GoBuild编译成可执行文件并运行。然后用Export设置环境变量,用Systemd创建服务以实现后台运行和开机自启,用Ufw开放端口,用Journalctl查看日志。此外需确认编译成功及服务正常启动。
在Ubuntu上部署一个Golang项目,说起来其实并不复杂,只要按部就班走完这几个关键步骤,基本就能跑起来。下面就把完整的流程拆开来讲,每一步都有具体的命令和说明,照着操作就行。

安装Go环境
先确认你的Ubuntu系统里有没有装Go。如果还没装,终端里敲两行命令就搞定:sudo apt update sudo apt install golang-go装完之后,运行
go version检查一下版本,看到输出就说明环境就绪了。获取项目代码
用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)。进入工作目录
直接cd到项目根目录,这就是接下来的编译和运行主场。编译项目
在项目根目录下执行go build,指定一下输出文件名:go build -o myapp-o myapp表示编译出来的可执行文件叫myapp,你可以按自己的喜好改成别的名字。如果项目依赖比较多,第一次编译可能会稍慢,耐心等就好。运行项目
编译完成后,直接运行生成的可执行文件:./myapp如果一切正常,程序就起来了。不过这种前台运行方式一关终端就停了,不太适合长期服务。
设置环境变量(如果需要)
很多应用会依赖一些环境变量(比如数据库连接串、密钥等)。可以在运行前通过export临时设置:export MY_ENV_VAR=value更推荐的方式是把这些变量写到项目的配置文件中,或者用
systemd的服务文件来管理(看下一步)。使用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应用就变成一个系统服务了,稳定又省心。
配置防火墙(如果需要)
如果你的应用需要对外提供网络服务(比如Web API),记得开放对应端口。比如应用监听8080端口,那就用ufw放行:sudo ufw allow 8080/tcp这条命令仅允许TCP流量通过8080端口。如果防火墙没启动,先
sudo ufw enable打开它。监控日志
应用跑起来后,总得看看日志吧?如果用了systemd,用journalctl就能轻松查看:journalctl -u myapp加上
-f可以实时跟踪最新日志:journalctl -u myapp -f。
以上就是Ubuntu上部署Golang项目的一套标准流程。当然,实际项目可能会涉及数据库、缓存、反向袋里等额外配置,但核心的部署骨架就是这些。只要每一步都走稳,基本不会出什么大问题。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
Go微服务熔断后指数退避重试机制配置
熔断器打开后应进入半开状态,再对试探请求启用指数退避重试,避免无效重试。使用gobreaker控制请求准入,backoff控制试探间隔,并启用抖动防止脉冲流量。重试和熔断需分层,重试只针对临时错误,熔断统计重试后的最终结果。
Java多重上界通配符无法直接写入语法的根本原因
Java通配符仅支持单一上界,如?extendsA,无法直接使用多重上界。多重上界(如TextendsA&B)仅适用于泛型类型参数声明,这是Java泛型设计中的语法限制,旨在简化类型系统。若需多约束,需通过类型参数间接实现。
Golang微服务中集成Argo实现GitOps持续发布
Go微服务与ArgoCD边界清晰,Application路径指向manifests目录而非源码。镜像更新通过CI自动提交或argocd-image-updater实现,避免写死latest标签。readinessProbe需合理配置initialDelaySeconds与periodSeconds,确保同步顺畅。
Java中AbstractList的快速失败机制中并发修改检查方法的执行时机
在AbstractList迭代器中,每次调用next()、remove()、previous()、set()或add()时,都会先执行checkForComodification,通过比较modCount与expectedModCount检测并发修改,确保操作时视图一致性,防止状态错乱。
Python中statistics模块快速计算统计学中位数的方法与步骤
使用Python的statistics median()计算中位数需注意:不接受空列表,否则抛出StatisticsError异常;不自动过滤None或非数字值;传入大型生成器可能耗尽内存或导致性能下降。建议先过滤脏数据并转为列表,再计算,同时明确空数据时的处理策略。
- 热门数据榜
相关攻略
2026-07-14 06:59
2026-07-14 06:59
2026-07-14 06:59
2026-07-14 06:59
2026-07-14 06:59
2026-07-14 06:58
2026-07-14 06:58
2026-07-14 06:58
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

