古老的榕树

部署 Go 语言开发的 Web 项目

潘军杰 发表于 2016-01-02 12:58 阅读(8831) 评论(2) 赞(4)

Go 语言开发的 Web 项目部署也算简单,Go 语言内置有自己的服务器,这个有别于 Java ,Java 需要借助 一些容器,把项目放置到容器中执行,比如 Tomcat Jetty Jboss WildFly Glassfish 等等很多成熟的容器。


我平时用得最多的算 Java,部署比起 脚本语言部署,来得简单直接一些,但比起部署 Go 语言项目,那就不算最简单的了。


Go 语言部署做法,自己很满意,原生自带 server 组件,需要指定一个 端口,在本地上编译成 二进制文件(把所有用到的类库都打包成一个文件),扔到服务器任何一个地方,执行就ok,你甚至不需要安装配置 Go 语言环境。不过 Go 语言是跨平台的, Windows Linux OSX 译出来的二进制文件是有区别的,如果你想部署到 Linux 上,你本地编译环境当然是 Linux 的才行,我没有试过在 Windows 上编译出的二进制文件,部署到 Linux 服务器上,如果好奇可以试试(交叉编译,也是极其简单的,只需几行指令即可)。


Go 语言开发的项目完成后,进入到项目根目录,比如我的博客项目在 /var/GOPATH/src/myblog   myblog 项目结构如下:

-template

-static

-src

--controller

--models

-server.go


程序集中在 src 里面,server.go 是入口文件


我只需如此编译项目:

cd /var/GOPATH/src/myblog

go build -ldflags "-w -s"

编译完成后

myblog 根目录下多了一个 myblog 执行文件(编译的平台不同有差异),Go 把相关 Go 的代码编译成二进制文件,其他静态不变,结构和布局都保持原样。


这时只需把 myblog 文件和一些template static文件 拷贝到 服务上/var/www/myblog(路径自行选择),执行 myblog 文件 即可。


执行:

cd /var/www/myblog

nohup ./myblog &


最后项目就跑起来了。


标签: Go 语言 部署
2 条网友评论

1 楼: 拉克 发表于 2016-01-03 09:32:00   回复 TA

谢谢!

2 楼: 龅牙驴 (博主) 发表于 2016-01-03 12:11:36   回复 TA

引用"拉克"的评论

谢谢!
客气
称呼*
邮箱*
内容*
验证码*
验证码 看不清换张