使用fastcgi_finish_request提高页面响应速度提升用户体验
在提到fastcgi_finish_request之前,先来了解一下以前研究过的ignore_user_abort,因为好像有一点点概念上的联系。之前一和篇详细的相关文章:http://www.04007.cn/article/356.htmlignore_user_abort的作用是设置服务器端是否忽略客户端的中止操作。而fastcgi_finish_request呢,fastcgi_finish_request的作用是直接给客户端返回,而服务器端仍然继续运行。两者有什么联系么?这样想: ignore_user_abort就是服务器端不理会客户端的关闭继续运行;fastcgi_finish_re...[>>…]
Tengine/nginx模块大全和指令大全
Tengine是由淘宝网发起的Web服务器项目,它是在Nginx的基础上针对大访问量网站的需求,添加了很多高级功能和特性,形成的一个高效、稳定、安全、易用的Web平台。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。Tengine官网地址:http://tengine.taobao.org/。Tengine压缩包很小,仅有2.3M,Tengine安装过程如下: [onev@BER~]$cd/opt/modules/download [onlinedev@BFG-OSER-4288download]$mkdir-p/opt/modules/tengine/ [onlinedev@BFG-OSER-4288download]$su...[>>…]
插入排序法的php实现代码和python实现代码
插入排序(Insertionsort)是一种简单直观且稳定的排序算法。可以这样想像一下,一个要排序的数据数组,从第2个元素开始,逐个将元素插入这之前的数据数组中并完成将前面的这些数据排序,从而实现整个数据有序排列。在要将被插入元素与前面的已排序数据数组进行对比的过程中,如果发现符合判定条件,就将数据与之调换,直至将这个要插入的元素安排到其应该放置的位置。插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量...[>>…]
选择排序法的php实现代码和python实现代码
选择排序(Selectionsort)是一种简单直观的排序算法。它的工作原理是:每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。选择排序的PHP实现代码如下: <?php #选择排序实现 $a=array(10,5,3,98,45,23,66,98,111,12,8,19,30); functionSelectSort($a) { for($i=0;$i<count($a);$i++) { $min...[>>…]
php: -v突然报错php: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory
有段时间没有登录阿里云服务器了,今天在上面执行一下php脚本突然了现报错:php:errorwhileloadingsharedlibraries:libiconv.so.2:cannotopensharedobjectfile:Nosuchfileordirectory,奇了怪了,之前都正常,今天突然遇到这个报错,一路排查解决如下: #php:errorwhileloadingsharedlibraries:libiconv.so.2:cannotopensharedobjectfile:Nosuchfileordirectory, #根据之前的经验要么是文件不存在,要么是/etc/ld.so.conf里缺少路径, [root@04007~]#locatelibiconv.so.2 /usr/local/lib/li...[>>…]
冒泡排序法的php实现、python实现,以及冒泡排序的优化
冒泡排序是常见的一个排序法,经过一轮轮相邻两两比较,每次将当前轮的最大值排到排序队伍的最后面,最后实现数据完全排序。冒牌排序的复杂度是O(N^2),那冒泡排序比较了多少次呢?是不是N^2呢?其实不是。冒泡排序的PHP实现如下示例:a.php: #待排序数组 $a=array(10,5,3,98,45,23,66,111,12,8,19,30); #排序方法order functionorder($a) { #对排序中的比较次数进行统计 $k=0; echocount($a),":allnumbers.n"; for($i=0;$i<count($a)-1;$i++) { for($j=0;$j<count($a)-$i-1;$j++) {...[>>…]
nginx服务器日志按天切割的最佳shell脚本
之前也因为需要,处理过nginx按日切割的shell脚本,有篇文章:https://www.04007.cn/article/571.html这次因为nginxproxy上的业务较多,存在各种服务日志,如果每种日志都单独去处理,显得有点冗余,而且不利于扩展,今天再次完善整理了一个完整nginx服务器日志按天切割的最佳shell脚本,以方便对更多的日志进行切割及压缩处理。#定时任务:每天0时0分执行00***/bin/sh/data/logs/log_nginx.shshell脚本内容如下,保存路径/data/logs/log_nginx.sh #!/bin/sh #nginxlog日志按日切割备份shell...[>>…]
nginx中打开gzip使用配置gzip_http_version值为1.0和1.1时遇到的结果乱码问题
在进行一套老业务服务器迁移的时候遇到了一个很奇怪的问题,因为发现配置大多一样,因此我将两套原来不一样的业务放到了一起,在所有nginx,php环境及业务代码部署好了之后,开始调试,但发现有一个接口的返回数据就是乱码。这乱码初看起来就是哪里压缩了一样,就想莫不是程序哪里有压缩处理,先对业务的调用进行了一翻梳理,因为是老业务,我之前也基本没有看过,在大致看了一下之后对其调用逻辑了解大致是请求nginx时会去执行lua程序,lua程序中会执行http请求本机,本机rewrite之后会再去...[>>…]
启动php7报错Zend OPcache huge_code_pages: mmap(HUGETLB) failed: Cannot allocate memory,Hugepage为何物
安装php7.1.5之后,启动php时报错NOTICE:PHPmessage:PHPWarning: ZendOPcachehuge_code_pages:mmap(HUGETLB)failed:Cannotallocatememory(12)inUnknownonline0,看英文的意思是无法分配内存,但这怎么可能呢,查找相关资料才知道原来还有Hugepage这个东西。 Hugepage是PHP7性能提升的成果之一,全称HugePageFyPHPTEXTsegment,通过启用这个特性,PHP7会把自身的TEXT段(执行体)挪到Huagepage上,对QPS性能有2%至3%的提升。具体Hugepage是什么,可以认为是一个...[>>…]
初始化CentOS6服务器,lnmp部署nginx1.10+php7.1.3+redis3.2.8+sphinx2.2,mmseg-3.2.14的全过程
因公司业务需要,要进行大量服务器迁移,其中包括公司核心主业务的N多N种服务器,好吧,基本都在我手里了。为了精简服务器,这次我对很多服务器进行了合并,确实很头大。前两天在处理几套nginxproxy搭建,包括N多域名的各配置等,并将原来分散的几套proxy合在一起,同时将请求签名验证的服务也都含在里面,从而省下了几台服务器。今天在着手一套sphinx服务器的环境搭建及调试,记录一下环境安装等各种调试吧:php7.1.3:之前开发的独立一套使用php生成xml索引的程序,对公司原来业务进行了大...[>>…]