在阿里云上部署基于gin的后端应用

接着我的前一篇博客

我申请的是ubuntu服务器。所以我的go exe要在windows上交叉编译,然后上传到阿里云。

1 交叉编译

在windows上交叉编译只要修改两处设置即可:

go env -w GOOS=linux
go env -w GOARCH=amd64

实际上由于我的windows已经是64位了,所以第二条其实已经满足了,不用修改。

修改后,可以用go env检查设置是否成功:

此外,你可以用putty登录阿里云,输入lscpu确认服务器也是64位:

x86_64的含义与amd64相同

2 开放端口

阿里云默认开放了80端口,所以这里代码也是打开了80端口。

你可以在“防火墙”一栏查看并修改开放的端口。

我的代码:

package main

import (
	"fmt"

	"github.com/gin-gonic/gin"
)

func main() {
	fmt.Println("hello gin!")

	r := gin.Default()
	r.GET("/json/", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"message": "Hello gin",
		})
	})

	r.GET("/string/", func(c *gin.Context) {
		c.String(200, "string")
	})

	r.GET("/picture/", func(c *gin.Context) {
		c.File("./tennis.jpg")
	})

	r.GET("/obj/", func(c *gin.Context) {
		c.File("./uploads_files_748162_OBJ.obj")
	})

	r.Run(":80")
}

3 编译

在vscode 中输入:

go build main.go

产生main文件

4上传程序和数据

利用winscp上传编译后的程序main,以及相应的obj和jpg文件

5 执行main

用putty登录服务器,将main文件的权限改为可执行:

sudo chmod +x main

然后执行

sudo ./main

在浏览器里输入 网址:80/picture,可见效果.

经验分享 程序员 微信小程序 职场和发展