go语言之路

openwrt上部署go web项目

openwrt上部署go web项目

昨天研究了一下路由器设备(openwrt),部署了最简单的go代码。

显然不能满足于此,要真正部署一个前后端项目。

试试go的兼容性到底怎么样!

一般来说在openwrt上开发Web项目有点小复杂,需要使用一种叫做lua的小众语言。我还是坚持使用go。当然只是做下尝试,没想到完全没问题。

要考虑的问题,openwrt上前端页面到底该怎么部署呢?

没有类似于apache的服务器可以使用,查找了相关资料。原来openwrt上自带了web服务器,更改下配置文件就可以。

配置文件位于 /etc/config/uhttpd

在文件的末尾添加

config 'uhttpd' 'web'

list 'listen_http' '0.0.0.0:81'

option 'home' '/tmp/web'

option 'cgi_prefix' '/cgi-bin'

解释:

  • 第二行的81是端口号,一般使用80作为web服务的端口号
  • 第三行的/tmp/web文件夹下放置html文件
  • 其余不用改动

添加完成之后,在/tmp/web下新增一个index.html文件

<h1>hello world</h1>

刷新uhttpd服务

/etc/inid.d/uhttpd restart

然后访问192.168.121.1:81即可看到hello world字样。

image-20210306215858626

接下来我把我开发的一个前后端项目部署在openwrt上面,看看能不能成功跑起来。

项目链接:https://github.com/gocloudcoder/puhaiPower

后端进行交叉编译生成main二进制程序并传到openwrt上。

GOOS=linux GOARCH=mipsle go build -ldflags "-s -w" main.go

前端使用npm编译

npm run build

生成一个dist文件夹,将dist文件夹传到openwrt上。

dist文件夹内容:

image-20210306220524095

image-20210306220023448

首先将go后端服务跑起来。

image-20210306220140749

然后在浏览器上输入

http://192.168.121.1:81/dist

image-20210306220301178

总结项目所使用到的技术,同时也表明兼容性很好。

go后端,包括mysql,gin,gorm,websocket。

只要是完全用Go写的代码,以及使用了完全用Go写的库,交叉编译都没有问题。

前端:Vue.js,echarts,websocket

万物互联,首先要保证的是兼容性。这些产品都做的很好,真的很img!

我竟然在路由器上跑了go程序--为什么不能在公共场合随便连接wifi!

上一篇

学会用编程思维解决工作中的问题--Go操作Excel篇

下一篇

你也可能喜欢

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片

个人微信公众号

we-tuiguang

qq交流群

群号:1046260719

微信扫一扫

微信扫一扫