
Webserver、PHP
文章平均质量分 51
笑天居士
天下风云出我辈,一入江湖岁月催。皇图覇业谈笑中,不胜人生一场醉。
展开
-
实现一个简单的服务端推送方案-实例篇Polling
前面讲过一篇《实现一个简单的服务端推方案》,这里讲实现的实例。这篇讲Polling,即浏览器客户端长轮循,后端PHP短轮循数据库,功能是从数据库表读取最新的记录并显示。客户端代码,JS库为prototype.js:无标题文档 var Class = { create: function() { return func原创 2013-12-05 20:48:30 · 2420 阅读 · 0 评论 -
在nginx中使用lua直接访问mysql和memcaced达到数据接口的统一
在nginx中使用lua直接访问mysql和memcaced达到数据接口的统一安装nginx参见《nginx+lua+redis构建高并发应用》让nginx 中的nginx_lua_module支持mysql 和memcache下载https://github.com/agentzh/lua-resty-memcachedhttps://github.com/agentzh/lua-resty-mysql对于访问接口的统一有很多的处理方式,这里介绍使用nginx lua 访问mysql并用m原创 2014-07-03 13:15:09 · 2850 阅读 · 0 评论 -
磁盘满了MySQL会做什么?
最近遇到一个故障和磁盘满有关系,并且同事也发现经常有磁盘满导致操作hang住无响应的情况,于是抽时间研究了一下这2种情况。 一、磁盘满了之后MySQL会做什么?我们看下官方的说法When a disk-full condition occurs, MySQL does the following: * It checks once every minute t转载 2014-05-08 15:22:55 · 1095 阅读 · 0 评论 -
PHP主动断开与浏览器的连接
曾经整理过一篇《关于PHP连接处理中set_time_limit()、connection_status()和ignore_user_abort()深入解析》,是讲解浏览器客户端断开时,服务器PHP脚本的处理。这篇文章,将讲解一下服务器PHP脚本怎样主动断开与浏览器的连接,主要方法是使用http协议header中的Content-Length和ConnectionContent-Length的作用:浏览器接收到指定Content-Length大小的消息实体后,则会断开与服务器的连接。Connectio原创 2014-06-14 01:11:38 · 5579 阅读 · 0 评论 -
Nginx之http_image_filter_module模块使用
image_filter off;#关闭模块image_filter test;#确保图片是jpeg gif png否则返415错误image_filter size;#输出有关图像的json格式:如下显示{ "img" : { "width": 100, "height": 100, "type": "gif" } } 出错显示:{}image_filter rotate 90|180|270;#旋转指定度数的图像,参数可以包括变量,单独或一起与resize crop一起使用。im原创 2014-07-09 14:52:59 · 8394 阅读 · 1 评论 -
nginx_http_push_module模块使用详解
关于nginx_http_push_module模块致力成为一个成熟的http推送和comet服务,它能够处理好全部链接,并且仅通过http请求,可以完成广播消息到所有客户端,这让你写异步web应用程序时得心应手,并且在代码中完全不必理会延时请求。该模块完整的实现了Basic HTTP Push Relay Protocol 为什么选择此模块当你要写一个实时更新的模块时,例如某些聊天室、多人在线flash游戏等。无论哪种方式,我们都要避免更新请求时刷新页面或者每隔几秒轮训服务器,这样的代码丑陋无比(原创 2014-08-21 15:03:55 · 2840 阅读 · 0 评论 -
Nginx通过LUA脚本访问RabbitMQ消息队列
发现了一个Nginx的LUA脚本:lua-resty-rabbitmqstomp,可以让Nginx通过LUA脚本访问RabbitMQ消息队列,这个脚本是通过stomp协议连接RabbitMQ的stomp适配器,来pub/sub消息的关于RabbitMQ-STOMP安装使用相关内容可以参见:RabbitMQ STOMP Adapter关于Nginx-LUA模块安装使用参见:LAMP架构演进到LAMPGC,再演进到LNMLGC关于STOMP协议相关资料参见这里:STOMP官方英文协议1.1版STOMP原创 2014-08-22 11:36:34 · 8799 阅读 · 0 评论 -
restful的实例论证
时下经常流行这各种概念型术语,一时间真的让很多人难以抓摸头脑。本文为大家讲解一下restful,以我的个人观点,带上实际例子来举证restful的优缺点和实现方法。什么是restful? restful相信大家或多或少有听说/使用过。如果您还不直到restful是啥玩意,可以点击维基的说明进行知识增进。 从维基的说明中,可以明确知道restful具有四种转载 2014-08-27 09:04:42 · 2354 阅读 · 0 评论 -
php与mysql通讯那点事
由于原文的编排方式,直接看dr转载 2014-11-12 13:53:10 · 1046 阅读 · 0 评论 -
nginx tcp代理模块nginx_tcp_proxy_module安装及使用
nginx tcp代理功能由nginx_tcp_proxy_module模块提供,同时监测后端主机状态。该模块包括的模块有: ngx_tcp_module, ngx_tcp_core_module, ngx_tcp_upstream_module, ngx_tcp_proxy_module, ngx_tcp_upstream_ip_hash_module。原创 2014-11-03 17:30:28 · 11998 阅读 · 0 评论 -
PHP获取POST数据的三种方法
方法一,$_POST方法二,使用file_get_contents(“php://input”)方法三,使用全局变量$GLOBALS['HTTP_RAW_POST_DATA']原创 2015-06-01 18:16:57 · 6399 阅读 · 0 评论 -
memc_nginx+srcache_nginx+memcached构建透明的动态页面缓存
在上一节《nginx+memcached构建页面缓存应用》http://www.ttlsa.com/html/2418.html中,说道nginx只负责从memcached服务器中读取数据,要往memcached写入数据还得需要后台的应用程序来完成。使用memc-nginx和srcache-nginx模块就可以主动的向memcached添加缓存,对应用程序来说是透明的。大大的提高动态页面访问速度。转载 2014-07-03 10:55:01 · 2287 阅读 · 0 评论 -
LAMP架构演进到LAMPGC,再演进到LNMLGC(linux+nginx+mysql+lua+gearman+C)
在这里重点介绍nginx怎样调用gearman中间件nginx在高并发异步调用的性能够强,这地球人都知道了lua的协程,也可以实现并发的异步调用把这两个结合起来看看效果先看下apache+php调用gearman的情况,同步一调用一gearman任务,假如这个任务要3S钟,那么当前这个apache的httpd进程就会被阻塞,它无法为其它客户端服务了再来看看nginx+lua调用gearman的实现:nginx同样是一个worker,worker进程里通过lua协程调用gearman任务,即原创 2014-06-30 10:23:20 · 4180 阅读 · 0 评论 -
实现一个简单的服务端推送方案-实例篇Polling(服务端阻塞读)
前面讲过一篇《实现一个简单的服务端推方案-实例篇Polling》,那篇文章服务端的实现是不停的轮循数据库,这篇将服务器端轮循数据库改为服阻塞的方式读取队列,减轻数据库服务器的压力。客户端代码,JS库为prototype.js:无标题文档 var Class = { create: function() { return fun原创 2013-12-05 21:08:01 · 2092 阅读 · 0 评论 -
实现一个简单的服务端推送方案-实例篇Polling(服务端阻塞读,SLEEP方式读MYSQL)
前面讲过一篇《实现一个简单的服务端推送方案-实例篇Polling(服务端阻塞读)》,那篇文章服务端利用Gearman队列来实现阻塞读,这篇服务器端用原生MySQL的Sleep函数来实现阻塞读。客户端代码,JS库为prototype.js:无标题文档 var Class = { create: function() { retu原创 2013-12-07 09:35:22 · 1911 阅读 · 0 评论 -
PHP 中flush()与ob_flush()的区别
buffer ---- flush() buffer是一个内存地址空间,Linux系统默认大小一般为4096(1kb),即一个内存页。主要用于存储速度不同步的设备或者优先级不同的 设备之间传办理数据的区域。通过buffer,可以使进程这间的相互等待变少。这里说一个通俗一点的例子,你打开文本编辑器编辑一个文件的时候,你每输入 一个字符,操作系统并不会立即把这个字符直接写入到磁盘,而是转载 2013-12-05 15:04:47 · 1139 阅读 · 0 评论 -
后台PHP脚本判断客户端是否中断(数据是否真正的发到前端)
这个问题,搜索一下,不知道有多少种回答,但是很多回答的都不准确,我测试总结一下首先是都认可的要判断connection_status()或connection_aborted(),但是这两个状态的值,必须是向前端发送数据后,才能获得,即无法被动获得,只能主动获得因此判断客户端是否中断的方法也就只能是,后端向前端发送数据后,判断connection_status()或connection_a原创 2013-12-05 15:03:29 · 2277 阅读 · 0 评论 -
实现一个简单的服务端推送方案-实例篇Push
这篇讲Push,即浏览器客户端被动等待无须轮循,服务器连不间断的向前端推送服务器当前时间。客户端代码,JS库为prototype.js: Comet demo The server time will be shown herevar comet = { connection : false, i原创 2013-12-05 20:57:32 · 2901 阅读 · 0 评论 -
关于PHP连接处理中set_time_limit()、connection_status()和ignore_user_abort()深入解析
在网上关于PHP连接处理的问题,回答的比较实际的是以下这篇文章:在 PHP 内部,系统维护着连接状态,其状态有三种可能的情况: 0 - NORMAL(正常)1 - ABORTED(退出)2 - TIMEOUT(超时)当 PHP 脚本正常地运行 NORMAL 状态时,连接为有效。当远程客户端中断连接时,ABORTED 状态的标记将会被打开。远程客户端连接的中断通常是由用户原创 2013-12-05 12:23:29 · 4037 阅读 · 1 评论 -
用Gearman做队列来实现消息推送
前面有一篇文章,是Nginx+Lua来实现推送的方式,这里我们换一种作法,用Nginx+Gearman作队列来实现。此方案的主要思路是这样的:客户端不会频繁的轮询服务端,而是对服务端发起一个长连接,服务端通过阻塞方式读取Gearman队列数据,一旦发现新数据便给客户端发出响应,这次交互便结束了。客户端处理好新数据后再重新发起一个长连接,如此周而复始。MySQL安装gearm原创 2013-12-03 16:31:30 · 4677 阅读 · 0 评论 -
使用memc-nginx和srcache-nginx模块构建高效透明的缓存机制
Nginx的Memc和SR Cache模块缓存策略的改进为了提高性能,几乎所有互联网应用都有缓存机制,其中Memcache是使用非常广泛的一个分布式缓存系统。众所周知,LAMP是非常经典的Web架构方式,但是随着Nginx的成熟,越来越多的系统开始转型为LNMP(Linux+Nginx+MySQL+PHP with fpm),这是因为Nginx采用基于事件机制的I/O多路复用思转载 2014-06-30 17:14:45 · 1843 阅读 · 0 评论 -
由Lua 粘合的Nginx生态环境
agentzh tech-club.org 演讲听录活动: Tech-Club技术沙龙(2012年2月)活动小结幻灯: ngx_openresty: an Nginx ecosystem glued by Lua录音: http://vdisk.weibo.com/s/2Qcon笔录: Zoom.Quiet 很早就一直关注 agentzh 对 nginx 的给力 hacki转载 2014-07-01 08:17:23 · 3246 阅读 · 0 评论 -
用lua扩展你的Nginx(整理)
ngx_lua原理ngx_lua将Lua嵌入Nginx,可以让Nginx执行Lua脚本,并且高并发、非阻塞的处理各种请求。Lua内建协程,这样就可以很好的将异步回调转换成顺序调用的形式。ngx_lua在Lua中进行的IO操作都会委托给Nginx的事件模型,从而实现非阻塞调用。开发者可以采用串行的方式编写程序,ngx_lua会自动的在进行阻塞的IO操作时中断,保存上下文;然后将IO操作委托给Nginx事件处理机制,在IO操作完成后,ngx_lua会恢复上下文,程序继续执行,这些操作都是对用户程序透明的。原创 2014-06-30 16:48:09 · 9386 阅读 · 0 评论 -
ASF 基于Swoole开发的PHP App Server框架
App Server Framework(ASF)简介当前版本0.01试用版。框架基于PHP-Swoole扩展开发,通过配置文件可以自定义各种应用协议,默认支持http协议。框架本身是一个完整的tcp_server,不再需要apache,nginx,fpm这些,框架已包含log处理,mysql访问封装。框架用fast-route库来做http route处理,直接映射到控制器上,使用者只要写原创 2015-12-03 10:51:04 · 2110 阅读 · 0 评论