beego整合go-bindata

最近蚊子在学习beego,beego是一个开源的golang web开发框架。具体beego相关文档,请移步官方网站。网站开发完成,自然就需要涉及到打包发布的过程。但在看了beego的打包发布后发现,beego并没有将静态文件编译到生成的二进制文件中。对于大型的网站来说,静态文件和二进制分离固然好,可以引用nginx, 单独服务静态文件同时反向代理go动态内容。可对于只有一页的工具类页面,总觉得怪怪的,

以下内容引用自beego文档

发行部署

Go 语言的应用最后编译之后是一个二进制文件,你只需要 copy 这个应用到服务器上,运行起来就行。beego 由于带有几个静态文件、配置文件、模板文件三个目录,所以用户部署的时候需要同时 copy 这三个目录到相应的部署应用之下

beego自身还有个一个工具叫“bee“

bee 工具是一个为了协助快速开发 beego 项目而创建的项目,通过 bee 您可以很容易的进行 beego 项目的创建、热编译、开发、测试、和部署。

其中bee工具有个命令是bale

bale 命令

这个命令目前仅限内部使用,具体实现方案未完善,主要用来压缩所有的静态文件变成一个变量申明文件,全部编译到二进制文件里面,用户发布的时候携带静态文件,包括 js、css、img 和 views。最后在启动运行时进行非覆盖式的自解压。

Continue reading “beego整合go-bindata”

使用golang的net/smtp包发送邮件

SMTP是一种将邮件从一端发送到另一端的一种机制。其工作在TCP/IP模型的应用层。有时使用TLS或SSL来建立终端系统之间的安全连接。

当SMTP客户端有消息要发送时,其会建立到SMTP服务器的双向传输通道。连接建立后,客户端启动邮件传送事务,该事务由一系列发送到服务器的命令构成。服务器回应每条消息。回应表明命令是否被接受,或者需要额外的数据或是否有任何错误。

这是一个简单的SMTP交互如何完成(来源维基百科)。

Continue reading “使用golang的net/smtp包发送邮件”

Kubernetes安装笔记

这是一篇介绍如何手动一步一步安装配置kubernetes的文章,主要为了确保读者了解启动kubernetes集群所需的每个任务。

集群信息

 

  • kube master 192.168.66.246 hostname: controller-0
  • kube node1 192.168.65.69 hostname: worker-0
  • kube node2 192.168.64.255 hostname: worker-1
  • pod CIDR 192.168.192.0/18
  • service CIDR 192.168.128.0/23

Continue reading “Kubernetes安装笔记”

wordpress支持php7

php7已经release很长时间了,据说性能提升很大,正好这两天蚊子的blog出现了性能的问题,于是就考虑将原来的php5升级到php7,以减少php-fpm的负载。结果在升级的过程中,确实也是遇到了一些问题。下面把我的升级过程大概记录下来,以方便有需要的朋友避免采坑。在线升级有风险,请做好备份。php7性能可以看看这篇文章。 做好备份工作后,就开始我们的升级之旅吧。首先要安装php7的包,蚊子的系统是ubuntu14.04,添加php7的repo

 

接下来你会看到PPA的一段描述,紧接着会有继续的提示,直接点击“回车”键即可。

repo安装好了,接下来更新package cache。

 

接下来安装php7的包

Continue reading “wordpress支持php7”

关闭elasticsearch中index的复制

如果你正在使用elasticsearch服务,同时你又有而且仅有一台elasticsearch服务器的话,那么你会发现你的服务健康状态一直是yellow的,这很有可能是你elasticsearch中的index设置了复制,但你又没有多余的节点可以进行复制。

你可以通过elasticsearch-head插件来确认是否真的是复制的问题。在Overview页能看到很多index shards被标记为“Unassigned”,所以,对于只用一台elasticsearch做服务的话(想必也没人只用一台elasticsearch服务器做production的业务),我们完全可以把index的复制功能关掉。 Continue reading “关闭elasticsearch中index的复制”

linux下查看磁盘分区类型

这两天遇到个需求,要在aws ec2服务器启动的时候自动挂载volume,同时把挂载的磁盘mount到指定的目录,这里就会遇到个问题,如果volume是新创建的,那么再挂载磁盘的时候就会报错,因为磁盘还没有被格式化过。那如果每次挂载前先对磁盘进行格式化,那么如果磁盘上本来有数据,那就都丢了。

这个时候,就需要对磁盘进行一个判断,如果磁盘已经有了分区类型,比如ext3或ext4,说明这块磁盘可以直接被mount而不用格式化,如果查不到分区类型,那就说明是块新盘,需要先格式化再挂载。 Continue reading “linux下查看磁盘分区类型”

在aws ec2机器上查看本机instance ID

今天蚊子遇上个小需求,要使用aws ec2的user-data让机器在启动的时候挂载一个已经存在的ebs volume,这样就需要在机器启动的时候知道自己当前机器的instance-id,其实办法也很简单,只需要安装一个包,运行一条命令就可以实现了

sudo apt-get install cloud-utils

然后运行如下命令

Continue reading “在aws ec2机器上查看本机instance ID”

创建新的独立screen会话执行命令

screen命令想必linuxer都知道并用过,对于那些想要放在前台跑又不想在terminal关掉的时候退出的应用很有用,最近wenzi就遇到一个新需求,我在用aws的cloud-config配置服务器自启动执行脚本的时候,希望在机器初始化之后,紧接着就跑一个脚本。

而且这个脚本我又不想使用nohup的方式跑,于是乎我就想到了screen,经过查看manpage,果然找到了好办法,既能使用screen多次连接的功能,又可以用screen命令直接运行命令并自动退出会话 Continue reading “创建新的独立screen会话执行命令”

MMDrawerController搭配storyboard使用详解

MMDrawerController是一个iOS抽屉式导航控件,支持自定义的过渡动画(滑动,滑动和缩放等)来展示或者隐藏“抽屉”。官方网站:https://github.com/mutualmobile/MMDrawerController

看过MMDrawerController源码和demo的人应该都知道,通篇都是找不到一个storyboard文件或者xib文件的,所有功能实现都是代码。按讨论组里作者的意思,这样更容易在大型项目中使用,可是对于我们个人初中级的开发者来说就有些许的不方便了,大神级的人物完全可以忽略。 Continue reading “MMDrawerController搭配storyboard使用详解”