-
从运行原理及使用场景看Apache和Nginx
用正确的工具,做正确的事情。本文只作为了解Apache和Nginx知识的一个梳理,想详细了解的请阅读文末参考链接中的博文。Web服务器Web服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。 应用层使用HTTP协议。 HTML文档格式。 浏览器统一资源定位器(URL)。 Web服务器常常以B/S(Browser/Server)方式提供服务。浏览器和服务器的交互方式如下: GET /index.php HTTP/1.1 ...…
-
PHP Socket的使用
最近在做的项目有一项需要耗时任务在后台运行的功能,虽然PHP并不是非常适合做常驻后台的守护进程,但是由于项目主要代码都是基于PHP实现,如果运行在后台的守护进程改换别的语言会非常不方便。所以不可避免会涉及到Web端和Daemon部分的通信,Socket是一个不错的方式。Socket是什么socket的英文原义是“孔”或“插座”。作为BSD UNIX的进程通信机制,取后一种意思。通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。在Internet上的主机一...…
-
Apache 日志文件格式及简单处理
Apache对于所有经手的访问日志,都会记录在access_log中,对这个文件分析,可以了解很多服务器情况。例如访问来源,访问资源等日志格式根据Apache文档,可以看到我们可以通过设置LogFormat来设置Apache记录的日志格式。简单的几种设置格式如下:1. Common Log Format (CLF)"%h %l %u %t \"%r\" %>s %b"2. Common Log Format with Virtual Host"%v %h %l %u %t \"%r\...…
-
Python脚本--下载合并SAE日志
Python脚本--下载合并SAE日志由于一些原因,需要SAE上站点的日志文件,从SAE上只能按天下载,下载下来手动处理比较蛋疼,尤其是数量很大的时候。还好SAE提供了API可以批量获得日志文件下载地址,刚刚写了python脚本自动下载和合并这些文件调用API获得下载地址文档位置在这里设置自己的应用和下载参数请求中需要设置的变量如下api_url = 'http://dloadcenter.sae.sina.com.cn/interapi.php?'appname = 'xxxxx'fro...…
-
PHP命名空间及自动加载
命名空间什么是命名空间呢?命名空间(英语:Namespace)表示标识符(identifier)的可见范围。一个标识符可在多个命名空间中定义,它在不同命名空间中的含义是互不相干的。这样,在一个新的命名空间中可定义任何标识符,它们不会与任何已有的标识符发生冲突,因为已有的定义都处于其它命名空间中。简单说来命名空间是为了解决不同库在同一个环境下使用时出现的命名冲突。例如我自己有一个函数名叫A,但是系统已经有一个A函数了,那就会出现冲突。PHP中的命名空间PHP从5.3版本开始引入了命名空间,之...…
-
基于CSS3实现尖角面包屑
尖角面包屑导航应该算是比较常见的导航之一,尤其是在做流程引导的时候。为了做一个比较好看的导航,一般都会做成尖角的,而且还会有渐变色,这就是稍微麻烦点的地方了,下面是这个导航的一个实现原理尖角实现尖角的实现利用了CSS的before和after特性,以及无内容情况下border的特性,先来看看他们的介绍伪元素before和afterbefore和after分别在一个元素前和后添加内容,使用方法如下:a:before, a:after { content: "123";}这段的意思就是在...…
-
部署Ceilometer到已有环境中
安装必要组件首先要把必备组件安装好,因为OpenStack Grizzly是基于Ubuntu包安装的,所以Ceilometer也依赖这种方式OpenStack具体Grizzly搭建方式参考OpenStack Grizzly Multihost部署文档所有节点所有节点都必须安装以下两个包,它们是Ceilometer的基础依赖apt-get install python-ceilometer apt-get install ceilometer-common控制节点首先将MongoDB安装在控...…
-
OpenStack Ceilometer数据存储与API源码解析
MongoDB的CollectionsCeilometer在MongoDB中共有这么几个Collections- user - { _id: user id source: [ array of source ids reporting for the user ] }- project - { _id: project id source: [ array of source ids reporting for the project ] }-...…
-
OpenStack Ceilometer中的Pipeline机制
Pipeline作用Pipeline翻译过来是管道的意思,它在ceilometer中的作用类似一个过滤器一样,或者说是转换器。它是一般是一个方法链,这个方法链前面一部分是transformer,transformer实现数据转换等功能,它可以有多个。在链尾是publisher,它负责将数据发送到AMQP中去。Pipeline定义在Agent的构造函数中,第一个创建的属性就是pipeline_managerself.pipeline_manager = pipeline.setup_pipe...…
-
OpenStack Ceilometer Compute Agent源码解读
Compute Agent功能不知道代码干了什么就盲目去读的话,基本是事倍功半的结果。Ceilometer通过Agent模块去polling虚拟机或者OpenStack中需要的信息,然后将它传送至Ceilometer Event Bus中去。对于虚拟机的具体信息(CPU,Memory,Disk I/O,Network I/O)需要去虚拟机所运行的节点上获取(其实使用libvirt可以直接tcp到哪个节点上),所以需要将Agent模块丢到计算机点上,然后通过Libvirt获取虚拟机状态,这就...…