## 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;
}
}
```

### ngin双机部署

问题来了,双机部署后,session永远没法存在一个机器上,所以要在upstream中加入ip_hash, 如图:

- go环境搭建
- 解决go get网络慢的问题
- beego的安装
- bee的安装
- 编辑器
- go module
- 配置文件详解
- 配置文件其他说明
- 路由方法
- 路由
- 数据校验
- 校验函数
- 页面跳转
- 获取前端数据
- json文件的获取
- xsrf的用法
- xsrf的防护
- srfs和json的搭配
- flash的用法
- 过滤器
- url反转
- 各类数据的处理
- 模板函数
- 内置模板函数
- 自定义模板函数
- 模板
- 模板处理
- 模板渲染
- 视图文件的处理
- 静态文件
- 请求方式判断
- 验证码
- 另一种方法
- 分页类
- session
- 登录判断
- orm模块
- 使用方法
- mysql的安装
- 安装orm及驱动
- 建立模型
- 自定义模型
- 增删改查
- 高级查询
- 常见问题汇总
- 代码收藏
- 打包部署
- go build打包
- utils收藏
- 新goer容易犯的错
- 字符串操作
