Golang部署到服务器的方法
背景介绍
在现代软件开发中,Go语言(Golang)因其高效、简洁和强大的并发处理能力而受到越来越多开发者的青睐,将Go项目成功部署到服务器上是每个开发者必须面对的挑战,本文将详细介绍几种将Go项目部署到服务器上的常见方法,包括直接部署、使用Docker容器以及通过宝塔面板进行部署。
一、直接部署
准备工作
确保本地开发环境:确保你的本地开发环境中已经安装了Go编译器,并且项目能够在本地正确编译和运行。
设置目标操作系统为Linux:在打包之前,需要设置Go的交叉编译选项,以确保生成的二进制文件能够在目标Linux服务器上运行,可以通过以下命令设置:
export GOOS=linux export GOARCH=amd64
打包项目
编译项目:在项目根目录下执行go build
命令,生成可执行的二进制文件,如果主文件名为main.go
,则执行:
go build o main main.go
这将在当前目录下生成一个名为main
的可执行文件。
上传二进制文件
使用Xshell连接服务器:打开Xshell,新建会话,输入服务器的公网IP、端口(默认22)、用户名和密码进行连接。
创建存放目录:在服务器上创建一个用于存放项目的目录,
mkdir p /root/project/myproject
上传文件:使用Xftp或其他文件传输工具,将本地生成的二进制文件(如main
)和配置文件(如config.yaml
)上传到服务器的指定目录。
赋予执行权限并运行
赋予执行权限:在服务器上,为二进制文件赋予执行权限:
chmod +x /root/project/myproject/main
后台运行并记录日志:使用nohup
命令让程序在后台运行,并将输出重定向到日志文件:
nohup /root/project/myproject/main c /root/project/myproject/config.dev.yaml > start.log 2>&1 &
查看进程:确保程序已成功启动,可以使用ps
命令查看进程:
ps ef | grep main
查看日志:通过查看日志文件start.log
,确认程序是否正常运行:
tail f start.log
二、使用Docker容器部署
编写Dockerfile
基础镜像:选择一个合适的基础镜像,如golang:alpine
或golang:latest
。
设置工作目录:使用WORKDIR
指令设置工作目录。
复制代码并编译:使用COPY
指令将代码复制到容器中,并使用go build
命令编译成二进制文件。
暴露端口:使用EXPOSE
指令暴露应用程序所需的端口。
启动容器:使用CMD
或ENTRYPOINT
指令启动编译后的二进制文件。
构建Docker镜像
构建镜像:在项目根目录下运行docker build . t myimage
命令构建Docker镜像。
运行Docker容器
运行容器:使用docker run d p 宿主机端口:容器端口 name 容器名称 myimage
命令运行Docker容器。
查看容器状态:使用docker ps a
命令查看容器是否成功运行。
三、使用宝塔面板部署
安装宝塔面板
连接服务器:使用SSH连接到服务器。
安装宝塔面板:执行宝塔面板的安装脚本,并按照提示完成安装。
创建网站并配置
登录宝塔面板:在浏览器中输入服务器IP:8888,登录宝塔面板。
创建网站:在宝塔面板中创建一个新的网站,并配置域名、根目录等信息。
上传代码:将Go项目的二进制文件和配置文件上传到网站的根目录。
配置启动项并运行
配置启动项:在宝塔面板的网站设置中,找到“启动项”或“计划任务”,添加一个启动命令,如nohup /path/to/main c /path/to/config.yaml > start.log 2>&1 &
。
运行项目:保存配置后,手动执行启动命令或等待计划任务触发,以启动Go项目。
四、归纳
将Go项目部署到服务器上是一个涉及多个步骤的过程,包括项目打包、文件上传、权限设置、运行配置等,不同的部署方式各有优缺点,开发者可以根据自己的需求和实际情况选择合适的部署方式,无论选择哪种方式,都需要仔细测试和验证,以确保项目在服务器上能够稳定运行。
到此,以上就是小编对于“golang部署到服务器的方法是什么”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1247842.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复