T086学习网 | 站长学院 | 技术文档 | 成语 | 歇后语 | 帝国时代 | 代码收藏 | IP地址查询 | 生活百科 | 生日密码 | CSS压缩 | 用户评论 | 欣欣百宝箱
前些天一个Nginx+PHP项目上线后遭遇了性能问题,于是打算练练手,因为代码并不是我亲自写的,所以决定从系统层面入手看看能否做一些粗线条的优化。首先,我发现服务的Backlog设置过小,可以通过ss命令查询Send-Q来确认:shell> ss -ln Recv-Q Send-Q Local Address:Port Peer Address:Port 0 511 *:80 *:* 0 128 127.0.0.1:9000 *:*明显看出,Nginx的Backlog是511;PHP的Backlog是128,在高并发时易成为瓶颈。关于TCP队列的详细介绍,推荐阅读「TCP queue 的一些问题」,此外,大家有兴趣的可以关注一下在Linux中全连接和半连接队列长度是如何计算的。其次,我发现服务的进程数设... 查看详细内容 >>
老王:一次nginx+php优化引发的血案的相关文章推荐
nginx  php  tcp 

详解Nginx虚拟主机配置中server_name的具体写法

server_name指令可以设置基于域名的虚拟主机,根据请求头部的内容,一个ip的服务器可以配置多个域名。nginx允许一个虚拟主机有一个或多个名字,也可以使用通配符 * 来设置虚拟主机的名字...

Linux网络状态工具ss命令使用详解

ss命令用于显示socket状态. 它比其他工具展示等多tcp和state信息. 它是一个非常实用、快速、有效的...强烈建议使用ss命令替代netstat部分命令,例如netsat -ant/lnt等

PHP 5.4及之后的版本的内置web服务器的使用

PHP是一种脚本语言,它需要PHP解释器来分析运行PHP文件。当把PHP做为CGI服务Web请求时,它需要被嵌入到某种Web服务器里,最常见的是集成到Apache或IIS里,这就是说,在使用PHP前,你需要安装Apache或IIS,并且正确的...

Tengine更新记录(淘宝基于Nginx开发的Web服务器)

Tengine-2.1.1 [2015-08-12]Feature: 支持动态upstream更新 [yzprofile]Feature: 增强ngx_http_reqstat_module模块 [cfsego]Feature: 增加ssl_verify_client_exception指令 [InfoHunter]Change: 降低解析配置的内存消...

Nginx如何启用ETag,提高访问速度

ETag全称EntityTags,HTTP协议规格说明中定义“ETag”为“被请求变量的实体值”。我们也可以把ETag理解为是一个客户端与服务器关联的记号。这个记号告诉客户端,当前网页在上次请求之后是否有发生变化,当发生变化时...

查看nginx、apache、mysql和php的编译安装参数

很多朋友可能会遇到这样一个问题,就是如何查看我系统编译安装的一些参数。在Linux系统下,查看nginx、apache、mysql和php的编译参数。1、nginx编译参数: your_nginx_dir/sbin/nginx -v 2、apache编译参数: cat yo...

Nginx 499错误的原因及解决方法

今天进行系统维护,发现了大量的499错误,499错误ngx_string(ngx_http_error_495_page), /* 495, https certificate error */ngx_string(ngx_http_error_496_page), /* 496, https no certificate */ngx_string(ngx_...

php curl高效获取网页内容(IPV6下超时的解决办法)

如果开启了IPv6,curl默认会优先解析 IPv6,在对应domain域名没有 IPv6 的情况下,会等待 IPv6 dns解析失败 timeout 之后才按以前的正常流程去找 IPv4。如果在程序中对curl获取内容都作了较短时间的超时限制,如1秒,...

PHP中copy on write写时复制机制

什么是写时复制(Copy On Write)?答:在复制一个对象的时候并不是真正的把原先的对象复制到内存的另外一个位置上,而是在新对象的内存映射表中设置一个指针,指向源对象的位置,并把那块内存的Copy-On-Write位设置...

那些强悍的PHP一句话后门

我们以一个学习的心态来对待这些PHP后门程序,很多PHP后门代码让我们看到程序员们是多么的用心良苦。强悍的PHP一句话后门这类后门让网站、服务器管理员很是头疼,经常要换着方法进行各种检测,而很多新出现的编写技术...

tcp_tw_recycle和tcp_timestamps导致connect失败问题

近来线上陆续出现了一些connect失败的问题,经过分析试验,最终确认和proc参数tcp_tw_recycle/tcp_timestamps相关;1. 现象 第一个现象:模块A通过NAT网关访问服务S成功,而模块B通过NAT网关访问服务S经常性出现conn...

老王再叙TIME_WAIT

之所以起这样一个题目是因为很久以前我曾经写过一篇介绍TIME_WAIT的文章,不过当时基本属于浅尝辄止,并没深入说明问题的来龙去脉,碰巧这段时间反复被别人问到相关的问题,让我觉得有必要全面总结一下,以备不时之需...

怎样正确设置remote_addr和x_forwarded_for

做网站时经常会用到remote_addr和x_forwarded_for这两个头信息来获取客户端的IP,然而当有反向代理或者CDN的情况下,这两个值就不够准确了,需要调整一些配置。什么是remote_addrremote_addr代表客户端的IP,但它的值...

Nginx配置文件nginx.conf中文详解

查了下网络资料,对Nginx配置文件nginx.conf的理解整理如下:#定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数。 worker_processes 8; #全局错误日志定义类型,[ debug | info ...

lnmp多用户安全运行环境(chroot)

lnmp发展到今日,已经相当稳定,大部分程序也都可以平滑从apache移到nginx环境下。网上流行的lnmp一键包使很多Linux初学者可以非常方便地搭建自己的网站服务器。但随着建立的网站越来越多,安全性越来越成为威胁,由...

Function eregi is deprecated (解决方法)

在php升级到php5.3或php5.4之后,原有程序可能会出现Function eregi() is deprecated 的报错信息。这是因为php5.3起不再支持eregi()函数,而推荐使用preg_match()函数替代。解决的方法是:将eregi()函数替换成preg_m...

小和尚问老和尚:ssl为什么会让http安全?

https其实就是建构在 ssl 层之上的 http协议,所以要比较https比http多用多少服务器资源,主要看 ssl 本身消耗多少服务器资源。http使用TCP 三次握手建立连接,客户端和服务器需要交换3个包,https除了 TCP 的三个包...

PHP is_file与file_exists 的使用

is_file真的可以替代file_exists使用吗?答案是否定的。为什么?原因很简单,is_file有缓存。我们可以使用下面的代码测试一下:

老王:如何正确配置Nginx+PHP

对很多人而言,配置Nginx+PHP无外乎就是搜索一篇教程,然后拷贝粘贴。听上去似乎也没什么问题,可惜实际上网络上很多资料本身年久失修,漏洞百出,如果大家不求甚解,一味的拷贝粘贴,早晚有一天会为此付出代价。假设...
更多
留言建议ASP探针PHP探针站长Enjoy的Blog
© 2017 T086学习网 - T086.com(原itlearner.com)
RunTime:6.86ms QueryTime:3