本地环境:Vmware CentOS7
一、阿里云ECS服务器
1、购买
官方介绍:云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。
链接: 阿里云ECS.
24岁以下的朋友可以直接使用学生特惠,第一个月免费体验,并有后续优惠。本人操作系统选用CentOS7.6 64位,避免了交叉编译的麻烦,这一点在后文详述。
2、可以根据需要重置登录密码
3、安全组配置
进入实例列表
接下去配置规则:
使用手动添加,设置如上图,其中端口与web程序中设置一致。
二、文件编译与上传
1、可能需要的交叉编译
由于作者在实验过程中保持了本地开发环境和云服务器的操作系统一致,因此,这一问题是可以忽略的,但在实际过程中可能存在,mac/windows/linux配合使用的情况,因此可以参照一下命令,在本地进行交叉编译:
//Mac下编译Linux 64位
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
//Mac下编译Windows 64位
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
//Linux下编译Mac 64位
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go
//Linux下编译Windows 64位
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
//Windows下编译Mac 64位
SET CGO_ENABLED=0 SET GOOS=darwin
SET GOARCH=amd64 go build main.go
//Windows下编译Linux 64位
SET CGO_ENABLED=0 SET GOOS=linux
SET GOARCH=amd64 go build main.go
不带前面参数直接编译,即本实验中情况,编译出开发环境适用的执行文件。直接执行 go build main.go
2、上传服务器
在Windows系统中,你可以通过下载ftp软件来上传文件。
在本次实验中我们基于本地的linux系统,我们可以利用scp命令来实现上传的目的。
1)首先你最好在云服务器中创建相应的工作目录,mkdir 命令可以便利地帮你实现这一目的。
实验中本人直接在root目录下创建了go目录。
2)基于scp传输
Linux scp 命令用于 Linux 之间复制文件和目录。scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。
scp filepath/filename servername@serverip:savepath
例如
假设可执行文件直接存储在linux系统的主目录下命名位test,想要上传其到我在1中创建的目录,云服务器的公网ip地址为100.100.100.100
则:
scp test root@100.100.100.100: /go/
3)登录阿里云服务器
cd进入相应目录,运行可执行文件。
我们采用后台执行的方式:
1)nohup 表示不挂断的运行命令
2)& 加在命令的最后,表示后台执行
3)jobs 查看后台执行的任务
例如:
nohup ./test &
即可后台运行我们上述举例中上传的可执行文件
4)完成
至此,我们的云服务器已经成功运行了一个go项目,在本实验中,本人尝试的是一个简单的web程序。我们可以通过在各操作系统下的浏览器输入公网ip:端口号访问我们的成果
测试: