Nginx+PHP-fpm 性能优化

WordPress性能优化:Nginx+PHP-FPM+Redis架构深度解析与实战部署 在网站性能优化领域,缓存机制与服务器配置调优是提升应用响应速度的核心技术。其基本原理是通过减少数据库查询、压缩传输数据、优化资源加载策略,将动态内容转化为高效可复用的静态或内存存储形式。从技术价值看,这不仅大幅降低服务器负载和带宽消耗,更能直接提升用户体验与搜索引擎排名。在内容管理系统(CMS)特别是WordPress的应用场景中,面对高并发访问与复杂插件生态带来的性能挑战,一套经过深度调优的Nginx、PHP-FPM与Redis集成方案,成为解决数据库瓶颈和加速页面生成的关键。本文聚焦于如何通过模块化配置 阅读详情
[导读]Nginx+PHP-fpm组合,以内存占用小,负载能力强壮的特点,成为小内存VPS建站的首选组合。我们一起来探讨一下nginx+php-fpm高负载的优化方法。 先来看看nginx配置参数的优化。nginx是前端接受浏览器端请求的web server...

Nginx+PHP-fpm组合,以内存占用小,负载能力强壮的特点,成为小内存VPS建站的首选组合。我们一起来探讨一下nginx+php-fpm高负载的优化方法。

先来看看nginx配置参数的优化。nginx是前端接受浏览器端请求的web server, 配置可调的参数如下:

下面是示例nginx配置

user www-data;
worker_processes  8;

#worker_processes 调至8, 大于8没什么用,小于8,nginx性能发挥不出来
worker_cpu_affinity 01 10 01 10 01 10 01 10;

#worker_cpu_affinity 参数可以使nginx充分发挥多核Cpu的性能优势 ,上面的配置是针对双核CPU的配置。01表示第一个核,10表示第二个核,如果是四核cpu,一至四个核分别表示为 0001 0010 0100 1000

error_log  /var/log/nginx/error_log crit;
pid        /var/run/nginx.pid;
worker_rlimit_nofile 10240;

#worker_rlimit_nofile 是nginx能打开文件的最大句柄数,我们需要把这个数字设大一点。

#linux系统的文件查看数限制查看是用 ulimit -n ,修改这个限制是用 ulimit -HSn 65535

events
{
use epoll;

#必须要用高效的event驱动,以获得最大性能
worker_connections  10240;

#max_clients = worker_processes * worker_connections/4 (最大连接数的计算公式)

}
http
{
include /etc/nginx/deny.iplist;
include       /etc/nginx/mime.types;
default_type  application/octet-stream;
server_name_in_redirect off;
server_names_hash_bucket_size 128;
server_tokens off;
client_header_buffer_size 32k;

#client头buffer可以调为32K
large_client_header_buffers 4 32k;
client_max_body_size 8m;
sendfile        on;
tcp_nopush     on;
keepalive_timeout 65;
tcp_nodelay        off;
client_body_timeout 10;
client_header_timeout 10;
send_timeout 60;
output_buffers 1 32k;
postpone_output 1460;
open_file_cache max=1000 inactive=20s;
open_file_cache_valid    30s;
open_file_cache_min_uses 2;
open_file_cache_errors   on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 32k;
fastcgi_buffers 4 32k;
fastcgi_busy_buffers_size 32k;
fastcgi_temp_file_write_size 32k;
gzip on;
gzip_buffers     4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types       text/plain application/x-javascript text/css application/xml;
gzip_proxied        expired no-cache no-store private auth;
proxy_cache_path  /var/lib/nginx/cache  levels=1:2   keys_zone=staticfilecache:80m inactive=1d  max_size=2500m;
proxy_temp_path /var/lib/nginx/proxy;
proxy_connect_timeout 300;
proxy_read_timeout 120;
proxy_send_timeout 120;
proxy_buffer_size  16k;
proxy_buffers      4 16k;
upstream wordpressnginx
{
server 127.0.0.1:6000 weight=1 fail_timeout=120s;
}
include /etc/nginx/sites-enabled/*;
}

上面的配置里面,有多处设及到buffer和timeout的地方。我们可以根据需要,慢慢调大这些参数,buffer自然是大点好,但不要太大。16K是标准配置,可以增加到32,往上加更大也不是不行,但 要考虑到你系统内存大不大,够不够用。timeout是超时,如果服务器很繁忙,不妨增加超时等待时间,以避免频繁出现502错误。

gzip是必须开启的,reverse proxy在允许的情况下,也尽量开启,一 是可以提升响应效率,二是降低服务器压力,gzip开启后更可以节省服务器带宽。

nginx主要的配置如上所述。

现在看一下php-fpm的配置。
[global]
pid = run/php5-fpm.pid
process_control_timeout = 5
[www]
listen = /dev/shm/php-cgi.sock
listen.allowed_clients = 127.0.0.1
user = www-data
group = www-data
pm = static
pm.max_children = 7

#这个决定了 php-fpm的总进程。我们要想同时响应更多的并发数,这个数值要尽可能大,比如500,1000
pm.max_requests = 10000

#并发数越大,这个最大请求数应该越大,并发数小,这个数值也应该越小。它表示,php-fpm进程响应了10000个并发请求之后,就自动重启一下进程。
request_terminate_timeout = 30

#表示等待30秒后,结束那些没有自动结束的php脚本,以释放占用的资源。
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

小内存的vps虽然经过使用php-fpm+nginx,提升了系统的效率,可以同时响应较多的并发请求,但是当并发数上来了,比如从100上升到10000,小内存肯定响应不过来,cpu也会 因为太忙,而导致系统负载变得很高很高,这个时候,我们就要考虑升级硬件配置了。

内存越大越好,CPU核心频率越高越好,CPU核越多越好。硬盘最好是SSD+RAID10。这样性能不仅高,数据安全也有保障。

上面所提到的各个配置参数,设及到数值的,不妨自己 多试着调小,调大参数,然后重启下nginx或者php-fpm进程,看看效果怎么样。

下面介绍一个比较好的压力测试工具,siege.

debian和ubuntu用户可以通过apt-get install siege来安装siege.

siege是一个跟ab.exe相似的http压力测试软件。

我们可以用siege来测试我们的网站和服务器性能。

siege -r 100 -c 10 http://www.domain.com/test.php

-r 是 repeat , -r 100是重复100次测试

-c 10是表示模拟10个用户同时并发连接

最后面是要测试的URL地址。

测试过程中可以随时按CTRL+C中止进程,siege会生成一个报告给我们。

我们可以同时根据siege的测试结果和监视服务器的负载情况,对系统压力状况进行一个深入了解和分析。接下来可以帮助我们判断该如何进行下一步操作,是继续优化配置,还是升级硬件。

【原创】Nginx+PHP-FPM优化技巧总结 php-fpm的安装很简单,参见PHP(PHP-FPM)手动编译安装。下面主要讨论下如何提高Nginx+Php-fpm的性能。 1.Unix域Socket通信 之前简单介绍过Unix Domain Socket这种通信方式,参见:Nginx+PHP-FPM的域Socket配置方法 Unix域Socket因为不走网络,的确可以提高Nginx和php-fpm通信的性能,但 阅读详情

相关推荐

Nginx配置PHP-FPM实战指南:从原理到排错与性能优化

在Web服务器架构中,Nginx以其高性能和低资源消耗著称,常作为HTTP服务器和反向代理使用。其核心原理是通过事件驱动和异步非阻塞模型高效处理连接,但Nginx本身不具备解析动态脚本的能力。为了实现PHP等动态内容的处理,需要借助FastCGI协议与独立的进程管理器通信,这正是PHP-FPM(FastCGI Process Manager)的技术价值所在。通过配置location指令和fastcgi参数,Nginx可以将PHP请求转发给PHP-FPM进程处理,这一组合广泛应用于LNMP(Linux, Ng

weixin_31497453的博客 296

swoole入门讲解

许多PHP程序员在熟悉LNMP/LAMP应用开发之后,尝试使用Swoole进行长生命周期、异步非阻塞、Socket网络通信、高性能高并发的编程开发,该教程内容从一个又一个的实例开始讲解,让学员清晰认识swoole的各个模块的作用。

Nginx+PHP-FPM部署实战:从环境搭建到性能优化全解析

在Web开发领域,服务器部署是连接开发与上线的关键环节,其核心在于Web服务器与后端语言的协同工作。Nginx作为高性能的Web服务器,采用事件驱动的异步非阻塞模型,能有效应对高并发场景,解决了传统服务器的C10K问题。PHP-FPM作为PHP的FastCGI进程管理器,通过高效的进程管理和通信协议,专门负责解析PHP代码。两者结合形成了经典的LEMP(Linux, Nginx, MySQL, PHP)技术栈,为动态网站提供了稳定、高效的处理能力。这种架构广泛应用于企业官网、电商平台和内容管理系统,能够显著

weixin_34221276的博客 359

php-fpm高占用cpu处理

在遇到php-fpm cpu占用很高,而且代码没法优化了,查看日志也没有任何报错的时候,如何处理优化

缘来侍你的博客 4772

php Nginx服务器占满

PHP FastCGI Process Manager (PHP-FPM) 和 Nginx 是一种常见的服务器架构方案,如果您的 PHP-FPM 进程在投流期间遇到高并发请求(如 300000 个请求),会导致服务器 CPU 占用过高。以下是一些可能的解决方案:1.增加服务器的硬件资源。例如,升级使用更好的 CPU、内存和磁盘。2.配置 PHP-FPM 进程池,将 max_children 和 max_requests 值增加到能够处理高并发请求的数量。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1888

使用Nginx构建PHP服务器

Nginx是一个高性能的Web服务器和反向代理服务器,而PHP是一种流行的服务器端脚本语言。结合Nginx和PHP,可以搭建一个稳定、高效的Web服务器来运行PHP应用程序。使用Nginx和PHP,您可以搭建一个高性能的PHP服务器来运行您的Web应用程序。现在,您的Nginx和PHP服务器已经搭建完成,并且已经进行了一些基本的优化。这将安装Nginx和PHP-FPM(PHP FastCGI进程管理器)。其次,您可以调整PHP-FPM的配置。为了提高服务器的性能,您可以进行一些额外的配置优化。

DqClojure的博客 360

PHP-FPM 最多可以创建 50 个子进程,最多可以同时接收多少个请求?底层原理是什么?

指定了 PHP-FPM 最多可以创建 50 个子进程。在理想情况下,PHP-FPM 最多可以同时接收 50 个请求。然而,当请求超过 50 个时,超出的请求会被排队等待,直到有子进程空闲出来处理这些请求。

长风破浪会有时的博客 889

PHP高并发,无需架构,再烂的SQL语句再烂的电脑也支持5W同时访问

PHP高并发的类,创建类,设置并发访问人数,调用队列

php7.4生产环境压力测试CPU占用100%解决方案

如上图,启用opcache之前,每一次请求PHP脚本都会执行一遍以上步骤,如果PHP源代码没有变化,那么Opcode也不会变化,显然没有必要每次都重新生成Opcode,结合在Web中无所不在的缓存机制,我们可以把Opcode缓存下来,以后直接访问缓存的Opcode岂不是更快。OPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是 省去了每次加载和解析 PHP 脚本的开销。php7.4自带就有,我是在php.ini加上如下配置。

星爷的博客 3277

金蝶云星空初级实施认证考题

Q4.[单选题] (1.5分) 总账中的多账簿账表主要是基于什么进行查看的Q47.[多选题] (2.5分) 销售订单的收款计划页签勾选预收之后,预收控制环节可以控制哪些节点?

m0_51994557的博客 3118

SpringBoot实战(二十八)集成 Collabora Online 实现在线编辑

SpringBoot实战(二十八)集成 Collabora Online 实现在线编辑

ACGkaka的博客 6981

【PHP部署性能优化终极指南】:Nginx + PHP-FPM 高并发配置秘诀全公开

掌握PHP部署性能瓶颈?本文深入解析PHP部署:Nginx + PHP-FPM 配置优化,涵盖高并发场景下的进程管理、连接池调优与缓存策略,显著提升响应速度与系统稳定性。适用于Web应用生产环境部署,值得收藏。

VarFun的博客 1062

simulink可控励磁同步电机模型分析

他励同步电机模型分析

qq_26681609的博客 5550

nginx,php-fpm性能优化

When you running a highload website with PHP-FPM via FastCGI, the following tips may be useful to you : ) 如果您高负载网站使用PHP-FPM管 理FastCGI,这些技巧也许对您有用:) 1. Compile PHP’s modules as less as...

weixin_30677617的博客 191

如何用AP525 测试输入信号的相位,频响,延时,Pop和卡顿

假设信号不是从AP输出,是功放或者其他的播放设备输出的信号,接入到AP525的输入端。

帮助100万人颠覆负面潜意识,实现人生蜕变,培养1万名潜意识开发导师 2398

【simulink模型】独立悬架振动模型,七自由度整车simulink模型

车辆悬架系统的设计对提升车辆行驶平顺性和操纵稳定性具有重要意义。本文构建了独立悬架的振动仿真模型以及七自由度整车动力学模型,基于 Simulink 平台实现对模型的动态响应仿真。通过对比不同工况下的车辆振动响应,验证了模型的准确性与实用性。研究结果为车辆悬架系统的优化设计提供了有力支持。

2401_84610415的博客 1581

Centmin Mod性能优化秘籍:Nginx+PHP-FPM配置最佳实践

Centmin Mod是一款基于Shell菜单的Nginx LEMP Web栈自动安装工具,专为AlmaLinux和Rocky Linux设计。本文将分享Nginx与PHP-FPM的性能优化最佳实践,帮助你充分发挥服务器潜力,提升网站响应速度和并发处理能力。 [![Centmin Mod与Nginx标识](https://raw.gitcode.com/gh_mirrors/ce/centmin

gitblog_00596的博客 719

LFM调制信号分类与检测识别

支持识别LFM信号、间歇采样干扰(ISRJ)、灵巧噪声干扰(SNJ)、扫频干扰(SJ)、瞄准干扰(AJ)、阻塞干扰(BJ)、密集假目标干扰(DFJ)、密集假目标加灵巧噪声干扰(DFWSNJ)、距离欺骗干扰(DDJ)、距离欺骗加灵巧噪声干扰(DDWSNJ)。Faster-RCNN支持检测识别LFM信号、间歇采样干扰(ISRJ)、灵巧噪声干扰(SNJ)、扫频干扰(SJ)、瞄准干扰(AJ)、密集假目标干扰(DFJ)、密集假目标加灵巧噪声干扰(DFWSNJ)、距离欺骗加灵巧噪声干扰(DDWSNJ)等8种信号。

菜yuan~的博客 1029

Docker-Symfony性能优化指南:提升PHP7-FPM与NGINX运行效率的10个技巧

Docker-Symfony是一个集成了NGINX、PHP7-FPM、MySQL和ELK(Elasticsearch、Logstash、Kibana)的多容器解决方案,为Symfony应用提供了完整的开发和运行环境。本文将分享10个实用技巧,帮助你优化Docker-Symfony的性能,提升PHP7-FPM与NGINX的运行效率,让你的Symfony应用在容器环境中更加高效稳定地运行。 ## 一

gitblog_02780的博客 1093

【YOLO系列】YOLOv8详解:模型结构、损失函数、训练方法及代码实现

YOLOv8是Ultralytics团队2023年推出的高效目标检测框架,在速度与精度平衡、多任务支持和易用性方面实现突破。模型采用改进的CSPDarknet主干网络、C2f模块和SPPF加速结构,结合PAN-FPN特征融合和解耦检测头设计,支持目标检测、实例分割和关键点检测任务。创新性地使用CIoU定位损失、Focal Loss置信度损失和动态样本分配策略,显著提升检测性能。实验表明,YOLOv8较前代模型mAP提升5-10%,在TensorRT加速下可达1000FPS,提供5种尺寸灵活选择,成为实时目标

一碗白开水一 2778

一文读懂5G网络整体架构(接入网+承载网+核心网)

接入网重构分级(分工更细、效率更高)、承载网三段化升级(管道更宽、更智能)、核心网服务化云化(管理更灵活、成本更低)最终实现“成本最优、资源灵活、场景适配”,才能支撑自动驾驶、工业互联网、智慧城市、VR/AR等各种新场景,真正走进我们的生活。

鲸落寰宇 427

查看PHP-FPM运行状态

1PHP-FPM内置了状态页,开启后可查看PHP-FPM的详细运行状态,给PHP-FPM优化带来帮助。 打开php-fpm.conf,配置php-fpm状态页选项 pm.status_path=/hdfphpss/ 配置nginx.conf,添加可访问server server{listen80;server_name127.0.0.1; location/hdfphpss/{includefas...

zl17822307869的博客 271

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

php fpm pool_php-fpm配置说明之一

nginx与php交互说明Nginx本身并不能处理PHP,只是一个web服务器的角色而已,通过cgi(通用网关接口),将php请求转发给php解释器处理。php-fpm是php版的CGI,转发方式有两种:1、 通过TCP协议转发,a、Nginx传递php请求到某个端口(9000),fastcgi_pass 127.0.0.1:9000;b、php-fpm监听9000端口接受请求;2、通过socke...

weixin_30868873的博客 667

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Nginx+php-fpm

1.安装nginx     yum install epel-release      #安装依赖     yum install nginx 2.在/etc/nginx/conf.d/目录下新建配置文件   vhosts.conf     新增以下配置     server {   listen 80; #监听80端口   server_name mpm.lzyco.com; ...

PettyZ的博客 332

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

上一篇: 搭建coreseek(sphinx+mmseg3)详细安装配置+php之sphinx扩展安装+php调用示例
php_jiang
博客等级 码龄15年 29粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值