运行go服务程序 centos7 selinux nginx

我们在用golang开发时,喜欢用nohup main &来运行go程序,但到了部署生产环境,显然需要更稳妥的方式来管理go服务程序。其中supervisor就是一款强大的工具。

  1. 安装supervisor。supervisor是一款主从形势的进程管理工具,它允许自定义用户及环境运行程序(命令)。
  2. 配置任务文件。假设我们的可执行文件路径: /var/www/path/to/main

  3. 运行supervisor


    现在go的程序已经以nginx身份运行起来了

很多情况下,服务器上不止一个go程序,比如还挂载了php制作的网站,这时使用nginx来代理go服务就是个不错的选择。

  1. 配置nginx conf文件。

     
  2. SELinux设置。The httpd_can_network_connect option allows httpd_t to connect to all TCP socket types that have the port_type attribute.

本文链接http://blog.suboat.com/运行go服务程序 centos7 selinux nginx/

参考自https://elithrar.github.io/article/running-go-applications-in-the-background/

HTML5 中 div section article 的区别

转载:http://www.qianduan.net/html5-differences-in-the-div-section-article/

刚刚开始接触 HTML5 时,对它的标签很不适应,甚至一度有点反感。尤其是对 div、section、article 这几个标签,实在弄不清楚应该使用在什么场合下。

div

HTML Spec:

The div element has no special meaning at all.

这个标签是我们见得最多、用得最多的一个标签。本身没有任何语义,用作布局以及样式化或脚本的钩子(hook)。

section

HTML Spec: “The section element represents a generic section of a document or application. A section, in this context, is a thematic grouping of content, typically with a heading.”

与 div 的无语义相对,简单地说 section 就是带有语义的 div 了,但是千万不要觉得真得这么简单。section 表示一段专题性的内容,一般会带有标题。看到这里,我们也许会想到,那么一篇博客文章,或者一条单独的评论岂不是正好可以用 section 吗?接着看:

Authors are encouraged to use the article element instead of the section element when it would make sense to syndicate the contents of the elemen.

当元素内容聚合起来更加言之有物时,应该使用 article 来替换 section 。

那么,section 应该什么时候用呢?再接着看:

Examples of sections would be chapters, the various tabbed pages in a tabbed dialog box, or the numbered sections of a thesis. A Web site’s home page could be split into sections for an introduction, news items, and contact information.

section 应用的典型场景有文章的章节、标签对话框中的标签页、或者论文中有编号的部分。一个网站的主页可以分成简介、新闻和联系信息等几部分。其实我对这里传达信息很感兴趣,因为感觉 section 和下面要介绍的 artilce 更加适用于模块化应用,这个话题以后会出篇专门的文章来讨论,这里暂时略过。

要注意,W3C 还警告说:

The section element is not a generic container element. When an element is needed for styling purposes or as a convenience for scripting, authors are encouraged to use the div element instead. A general rule is that the section element is appropriate only if the element’s contents would be listed explicitly in the document’s outline.”

section 不仅仅是一个普通的容器标签。当一个标签只是为了样式化或者方便脚本使用时,应该使用 div 。一般来说,当元素内容明确地出现在文档大纲中时,section 就是适用的。

article

HTML Spec:

The article element represents a self-contained composition in a document, page, application, or site and that is, in principle, independently distributable or reusable, e.g. in syndication.

article 是一个特殊的 section 标签,它比 section 具有更明确的语义, 它代表一个独立的、完整的相关内容块。一般来说, article 会有标题部分(通常包含在 header 内),有时也会 包含 footer 。虽然 section 也是带有主题性的一块内容,但是无论从结构上还是内容上来说,article 本身就是独立的、完整的。

HTML Spec 中接着又列举了一些 article 适用的场景。

This could be a forum post, a magazine or newspaper article, a blog entry, a user-submitted comment, an interactive widget or gadget, or any other independent item of content.

当 article 内嵌 article 时,原则上来说,内部的 article 的内容是和外层的 article 内容是相关的。例如,一篇博客文章中,包含用户提交的评论的 article 就应该潜逃在包含博客文章 article 之中。

问题是怎么才算“完整的独立内容”?有个最简单的判断方法是看这段内容在 RSS feed 中是不是完整的。看这段内容脱离了所在的语境,是否还是完整的、独立的。

例子:

总结

div section article ,语义是从无到有,逐渐增强的。div 无任何语义,仅仅用作样式化或者脚本化的钩子(hook),对于一段主题性的内容,则就适用 section,而假如这段内容可以脱离上下文,作为完整的独立存在的一段内容,则就适用 article。原则上来说,能使用 article 的时候,也是可以使用 section 的,但是实际上,假如使用 article 更合适,那么就不要使用 section 。nav 和 aside 的使用也是如此,这两个标签也是特殊的 section,在使用 nav 和 aside 更合适的情况下,也不要使用 section 了。

对于 div 和 section、 article 以及其他标签的区分比较简单。对于 section 和 article 的区分乍看比较难,其实重点就是看看这段内容脱离了整体是不是还能作为一个完整的、独立的内容而存在,这里面的重点又在完整身上。因为其实说起来 section 包含的内容也能算作独立的一块,但是它只能算是组成整体的一部分,article 才是一个完整的整体。

因为其实有些时候每个人都有自己的看法,所以难免有难于决断的时候,怎么办?

在 HTML5 设计原理 中,有一条是专门用来解决类似情况的:

最终用户优先(Priority of Constituencies)

“In case of conflict, consider users over authors over implementors over specifiers over theoretical purity.” 一旦遇到冲突,最终用户优先,其次是作者,其次是实现者,其次标准制定者,最后才是理论上的完满。

推荐各位多读几遍 HTML5 设计原理,这才是纷繁世界背后的最终奥义。

使用 HTML5 正确合理的重构你的网页

转载:http://blog.wpjam.com/article/designing-with-html5/

HTML5 是下一代 Web 开发标准,到现在的2012年, HTML5 规范编写完成了,虽然计划到2022年,浏览器将会完全支持整个 HTML5 ,但是现在经过浏览器厂商的努力,现代浏览器已经可以支持一部分 HTML5 的新功能。此外,在 QQ空间、百度等网站,都已经使用 HTML5 进行了重构。浏览器也在不断的升级,将会对 HTML5 有一个更好的支持。

我们为什么要使用 HTML5

HTML5 的语法更简单精炼,语义性更强,便于编写代码和理解别人编写的代码。搜索引擎也在不断的提升自己对 HTML5 页面的抓取、提取信息技术,语义性的增强,也便于搜索引擎的理解,对 SEO 也有一定的意义。

我们要如何使用 HTML5 重构网页

HTML5 中增加了大量的新标签。这些标签大体可以分为两类:1,功能性标签。2,语义性标签。

功能性标签:就是类似canvas、video 等标签,它是 HTML5 新创造出来的,用于实现一些新功能用的。这类新增标签,用于某些新功能的,这些新功能往往需要浏览器配合实现,所以在早期的浏览器中,功能不会得到支持。

语义性标签:就是类似 header、footer、nav 等等标签。它们类似 div,没有什么新增的功能,但是语义性增强了。例如,使用 header 括起来的内容,就会被认为是头部相关,页面中使用 nav 括起来的有序列表(ol)或者无序列表(ul),就会被认为是这个网站(或者网页)的导航。这类标签同样是新增的,在早期浏览器中不会被支持,但是这与功能性的标签不同,由于它的本质和 div 类似,所以可以通过一段 JavaScript 代码来进行 hack 从而让早期浏览器支持。这点我们将会在文章后面介绍到。

我们要重构 HTML5 页面,就是使用 HTML5 的新标签和相关的新用法,针对原来的用法进行相应的替换。而本文的内容,就是介绍重构网页比较常用的 HTML5 语义性标签的用法,以及如何合理正确的使用这些标签来替换之前网页的相应标签。这里,我以一个博客网站作为案例。

本文要用的 HTML5 标签

更简洁的 DOCTYPE 文档声明

在 XHTML 或者 HTML4 中,有多少人能记住并手写出来最顶端的 DOCTYPE 声明?那么长,那么复杂的 DOCTYPE 声明,只能靠复制。而在 HTML5 中,DOCTYPE 只有四个字母 “html”。

XHTML:

HTML5 :

更简洁的文档编码声明

同样的,在 XHTML 和 HTML4 中,要声明文档编码需要使用 meta 标签,写很多东西。在 HTML5 中,meta 标签直接添加了一个 charset 属性,用来描述文档编码。

XHTML:

HTML5 :

从这两个,或许你就已经感受到了 HTML5 的魅力, HTML5 写起来非常简洁高效,让人爱不释手。

网页相关资源的引入

使用 link 标签引入 CSS ,使用 script 标签引入 JavaScript。这些和以前一样没有变化。

网站的头部区域

网站的头部区域,通常放置网站的标题、副标题、头部广告、网站介绍、网站导航等等。在之前的 XHTML 或者 HTML4 中,通常写一个 id=“header” 的 div 来实现。但是由于使用频率太高,于是 HTML5 中,新增了一个 header 标签,用于表示头部区域。

XHTML:

HTML5:

网站的标题和描述

正确的并且有 SEO 功效的网站标题区域(LOGO)写法应该是这样的:

使用 h1 来标记网站的标题,使用 h2 来标记网站的副标题、描述等。

如果网站使用图片作为 LOGO ,也要使用这种方法,但是为了版面,需要使用文本隐藏技术,将这些文字隐藏。之后,再使用 img 标签引入 LOGO 图片,然后添加 img 的 alt 属性为网站名称,并且为图像添加一个链接,链接到网站首页。

在 HTML5 中,新增了一个 hgroup 标签,用于对标题以及子标题进行分组。我们可以使用 hgroup 元素包裹网站标题(h1)和网站副标题(h2)。

XHTML:

HTML5:

使用 article 表示文字的一个摘要

HTML5 新增 article 标签,来表示文档、页面或者独立的、完整的、可以独自被外部引用的内容。例如博客里面的一篇文章、一个文章摘要、一篇论坛帖子等等独立的内容。

所以,对于博客来说,我们要使用 article 来标记博客文章摘要列表。需要注意的是,article 元素通常要有自己的标题(通常为h1或h2),一般放在 header 标签里面。还应该有 aside (稍后说),来描述这篇文章摘要相关的信息(例如文章发布时间、文章作者、文章标签、分类目录等等)。当然还要有主体内容,尽可能的还要有 footer (稍后说),来表示底部相关信息。这些元素共同构成一个完整的 article 。

XHTML:

HTML5 :

使用 aside 标签描述文章或网站的相关信息

在文字摘要的周围,我们通常要使用一些信息来描述这篇文字,例如作者是谁,文字写于什么时间,文字的相关标签或者分类目录是什么。这些属于文章的附属信息。我们可以使用 aside 标签来标记他们。标记之后,表示属于这个 article 的相关描述信息。此外,aside 也用于边栏功能。

XHTML:

HTML5:

使用 time 标签来标记文章发布时间

标记文字的发布时间,可以让机器、搜索引擎等理解这篇文章是什么时间发表的。之前的话,可能要以抓取时间为发布时间或者从文章中抓取类似“本文发表于XX”的文字进行分析。

XHTML:

HTML5:

这个 time 标签还有一个 pubdate 属性需要特别注意一下,在上面,我给出了两种写法,第二中多了一个 pubdate 属性。增加这个属性,主要是为了标记正确发布时间,防止出现以下情况。

用 pubdate 规定正确的发布时间,但是需要注意,在 W3C 标准中,并没有 pubdate 这个属性,这个属性是由 mozilla 他们自己规定的。所以添加 pubdate 属性之后,无法通过 W3C 的 HTML5 验证。

使用 nav 标签标记网站导航

nav 标签通常用于以下场合:网站导航条、侧边栏导航条、页内导航、前页后页翻页等。但是,普遍认为的是,一个页面上最好只用一个 nav 标签,用它来标记最重要的导航条(一般就是网站的导航条)。这样,可以让搜索引擎等快速定位,避免误导。通常配合 ul 或 ol 列表标签一块使用。

XHTML:

HTML5:

使用 footer 标签标记网站底部

网站底部通常用来说明网站信息的版权、网站所有者、备案等等信息。

XHTML:

HTML5:

不要乱用 section 标签

section 的语义为“部分”,通常对网站或页面上的内容,进行分开。个人认为这是一个比较鸡肋的属性,本身它的功能和 div 标签类似,同时又和 article 标签的功能类似。本人之前在博客中写过一篇关于区分 section 和 article 元素的文章:article 元素与 section 元素区别详解。从那次写文章到现在的6个月的学习,我感觉 section 标签的用法越来越难以把握,所以如果你无法确定应该使用什么标签,请使用 div ,不要一味的乱用 section 。

HTML5 没有抛弃 div 标签

有人认为, HTML5 中新增的那么多语义性的标签,随便一个都比 div 更有语义性。那么我就不用 div 了,全部给成 HTML5 新增的标签。这是大错特错的。W3C 并没有规定 HTML5 废除了 div 标签。实际上 div 标签,仍然用于全局的布局。在你无法非常有把握使用什么 HTML5 标签的时候,请使用 div 标签!

HTML5 重构的一个比较好的例子

结构清晰合理的、使用 HTML5 重构过的网站有很多,这里只拿出几个比较好的比较典型的例子来分析。这里以“我爱水煮鱼” 博客作为例子(地址:http://blog.wpjam.com/)。你可以随时打开,然后右键“查看源代码”来观看详细的代码。此外,“潜行者m”博客也采用了比较规范的写法,也可以借鉴。

使用 HTML5 正确合理的重构你的网页

兼容早期的浏览器

早期的浏览器中,由于没有这些新增标签,所以无法解析网页中的样式。但是新增标签,实质上与 div 性质类似,所以就有人使用了一段 JavaScript 代码,创建与新增标签中名称相同的对象。这样,浏览器就可以将 CSS 和标签结合解析,看到实际效果。这段代码就是 HTML5 Shiv,更详细的使用说明,请看这里:使用 HTML5 Shiv 让 IE 支持 HTML5

由于 HTML5 比较新的技术,对此的介绍和教程还比较少,所以本文难免出现一些不准确的地方,请高手评论赐教!想学习 HTML5 的朋友,这里也推荐了一些学习书籍:HTML5 和 CSS3 书籍推荐

CSS垂直居中

With just 3 lines of CSS (excluding vendor prefixes) we can with the help of transform: translateY vertically center whatever we want, even if we don’t know its height.

The CSS property transform is usally used for rotating and scaling elements, but with its translateYfunction we can now vertically align elements. Usually this must be done with absolute positioning or setting line-heights, but these require you to either know the height of the element or only works on single-line text etc.

So, to do this we write:

That’s all you need. It is a similar technique to the absolute-position method, but with the upside that we don’t have to set any height on the element or position-property on the parent. It works straight out of the box, even in IE9!

To make it even more simple, we can write it as a mixin, or a placeholder selector, with its vendor prefixes:

转载自 http://zerosixthree.se/vertical-align-anything-with-just-3-lines-of-css/

wordpress SSL 登陆后台

有时候,鉴于SEO与网络安全考虑,我们只想让wordpress的后台登录使用SSL。我们可以使网站可通过http访问也可通过https访问,并时所有链接为http。

  1. 配置wordpress设置使用http://yourdomain.com的链接。
  2. 申请SSL证书。
  3. 配置nginx:
  4. 编辑wp-config.php文件,插入
  5. 重启nginx服务,OK。