## Golang 支持在一个平台下生成另一个平台可执行程序的交叉编译功能。
Mac下编译Linux, Windows平台的64位可执行程序:
```
CGO\_ENABLED=0 GOOS=linux GOARCH=amd64 go build test.go
CGO\_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go
```
Linux下编译Mac, Windows平台的64位可执行程序:
```
CGO\_ENABLED=0 GOOS=darwin GOARCH=amd64 go build test.go
CGO\_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go
```
Windows下编译Mac, Linux平台的64位可执行程序:
```
SET CGO\_ENABLED=0
SET GOOS=darwin3
SET GOARCH=amd64
```
go build test.go
SET CGO\_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build test.go
GOOS:目标可执行程序运行操作系统,支持 darwin,freebsd,linux,windows
GOARCH:目标可执行程序操作系统构架,包括 386,amd64,arm
## 使用bee工具打包
`bee pack`
会顺便把静态文件也打包起来,生成一个***.tar.gz文件,将这个文件复制到你的服务器上,再解压到wwwroot/go/blog/目录下,再启动
```
nohup ./blog &
```
看一下启动的服务内容
`tail nohup.out`
## nginx反向代理
监听8090端口,你可以部署为监听80端口
服务器名为localhost,你可以部署为你的域名
然后将你的127.0.0.1:8091反向代理到你的网站上。
将以下test.conf放入nginx/server/下,重启nginx就可以了
```
server{
listen 80;
server_name test.com;
location /{
try _files / _not_existes_ @backend;
}
location @backend{
proxy_pass http://127.0.0.1:8080;
}
}
```
![](https://img.kancloud.cn/04/38/0438c4d43f1860aa9c2205d6fd5de9e8_1339x428.JPG)
### ngin双机部署
![](https://img.kancloud.cn/30/ed/30edfbc98561c0a2892ad9fff6f9258b_1223x494.JPG)
问题来了,双机部署后,session永远没法存在一个机器上,所以要在upstream中加入ip_hash, 如图:
![](https://img.kancloud.cn/c6/4f/c64fdc12a73b945105c28b408a9e824f_1216x495.JPG)
- go环境搭建
- 解决go get网络慢的问题
- beego的安装
- bee的安装
- 编辑器
- go module
- 配置文件详解
- 配置文件其他说明
- 路由方法
- 路由
- 数据校验
- 校验函数
- 页面跳转
- 获取前端数据
- json文件的获取
- xsrf的用法
- xsrf的防护
- srfs和json的搭配
- flash的用法
- 过滤器
- url反转
- 各类数据的处理
- 模板函数
- 内置模板函数
- 自定义模板函数
- 模板
- 模板处理
- 模板渲染
- 视图文件的处理
- 静态文件
- 请求方式判断
- 验证码
- 另一种方法
- 分页类
- session
- 登录判断
- orm模块
- 使用方法
- mysql的安装
- 安装orm及驱动
- 建立模型
- 自定义模型
- 增删改查
- 高级查询
- 常见问题汇总
- 代码收藏
- 打包部署
- go build打包
- utils收藏
- 新goer容易犯的错
- 字符串操作