部署 Go 语言开发的 Web 项目
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 &
最后项目就跑起来了。
1 楼: 拉克 发表于 2016-01-03 09:32:00 回复 TA
2 楼: 龅牙驴 (博主) 发表于 2016-01-03 12:11:36 回复 TA
引用"拉克"的评论
谢谢!