nginx优化fpm优化

2024-04-04 19:38
文章标签 优化 fpm nginx

本文主要是介绍nginx优化fpm优化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

nginx 隐藏版本号

vim /usr/local/nginx/conf/nginx.conf 编辑主配置文件
http {include       mime.types;default_type  application/octet-stream; 下#添加 server_tokens off # 关闭版本号效果 : Server: nginxcurl -I 192.168.79.160  #可查看版本
HTTP/1.1 200 OK
Server: nginx

修改Nginx用户与组

编译安装时指定用户与组./configure \
–prefix=/usr/local/nginx	\
--user=nginx	\
--group=nginx	\修改配置文件指定用户与组
vim /usr/local/nginx/conf/nginx.conf
user  nginx nginx; #第一排

配置Nginx网页缓存时间

当Nginx将网页数据返回给客户端后,可设置缓存的时间,以方便在日后进行相同内容的请求时直接返回,避免重复请求,加快了访问速度
一般针对静态网页设置,对动态网页不设置缓存时间
可在Windows客户端中使用fiddler查看网页缓存时间

vim /usr/local/nginx/conf/nginx.con
server {listen       80;server_name  www.hs.com;location / {root   /usr/local/nginx/html;index  index.html index.php index.htm;}# ~ :区分大小写location ~ \.php$ {    root /usr/local/nginx/html;index index.php;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;include fastcgi.conf;#这里是缓存一天   expires 1d;}
}

4、日志切割
(1)编写脚本,把日志文件移动到var/log/nginx/下,以当前时间为名称,用kill -USR1创建新日志文件/usr/local/nginx/logs/access.log,最后删除30天前的日志文件

#!/bin/bash
#nginx log fg
d=`date -d "-1 day" +%Y%m%d`
logspath="/var/log/nginx"
pidpath="/usr/local/nginx/logs/nginx.pid"
[ -d $logspatn ] || mkdir -p $logspatn
mv /usr/local/nginx/logs/access.log "$logspath/luobin.com-access-$d.log"
mv /usr/local/nginx/logs/error.log "$logspath/luobin.com-error-$d.log"
kill -USR1 $(cat $pidpath)
find $logspath -mtime +30 | xargs rm -rfcrontab -e
1 0 * * * /bin/bash fenge.sh
systemctl restart crond
systemctl enable crond

配置Nginx实现连接超时

在企业网站中,为了避免同一个客户长时间占用连接,造成资源浪费,可设置相应的连接超时参数,实现控制连接访问时间超时参数讲解Keepalive_timeout
设置连接保持超时时间,一般可只设置该参数,默认为75秒,可根据网站的情况设置,或者关闭,可在http段、server段、或者location段设置
Client_header_timeout
指定等待客户端发送请求头的超时时间
Client_body_timeout
设置请求体读超时时间
keepalive_timeout  65 180;  //连接保持超时时间,65为服务端超时时间,180为客户端超时时间,单位秒client_header_timeout 80;   //等待客户端发送请求头部的超时时间client_body_timeout 80;   //请求体读超时时间

更改Nginx运行进程数

在高并发场景,需要启动更多的Nginx进程以保证快速响应,以处理用户的请求,避免造成阻塞
可以使用ps aux命令查看Nginx运行进程的个数worker_processes:设置进程数,一般设为CPU的个数或者核数,在高并发的情况下可设置为CPU个数或者核数的2倍
查看CPU核数:cat /proc/cpuinfo | grep -c physical
默认情况下,nginx的多个进程可能更多的跑在一个CPU上,通过设置worker_cpu_affinity 0001 0010 0011 0100使每个进程分别由不同CPU核心处理(双核:0101 1010;)root@lnmp conf]# ps aux |grep nginx
root       1771  0.0  0.0  20548   704 ?        Ss   23:03   0:00 nginx: master process /usr/local/sbin/nginx
nginx      1773  0.0  0.0  22224  2488 ?        S    23:03   0:00 nginx: worker process
nginx      1774  0.0  0.0  22224  2488 ?        S    23:03   0:00 nginx: worker process
nginx      1775  0.0  0.0  22224  2488 ?        S    23:03   0:00 nginx: worker process
nginx      1776  0.0  0.0  22224  2488 ?        S    23:03   0:00 nginx: worker process

配置Nginx实现网页压缩功能

Nginx的ngx_http_gzip_module压缩模块提供对文件内容压缩的功能允许Nginx服务器将输出内容在发送客户端之前进行压缩,以节约网站带宽,提升用户的访问体验,默认已经安装可在配置文件中加入相应的压缩功能参数对压缩性能进行优化压缩模块:ngx_http_gzip_module,默认已安装压缩功能参数讲解gzip on:开启gzip压缩输出
gzip_min_length 1k:用于设置允许压缩的页面最小字节数
gzip_buffers 4 16k:表示申请4个单位为16k的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来存储gzip压缩结果
zip_http_version 1.0:用于设置识别http协议版本,默认是1.1,目前大部分浏览器已经支持gzip解压,但处理最慢,也比较消耗服务器CPU资源
gzip_comp_level 2:用来指定gzip压缩比,1压缩比最小,处理速度最快;9压缩比最大,传输速度快,但处理速度最慢,使用默认即可
gzip_types text/plain:压缩类型,是就对哪些网页文档启用压缩功能
gzip_vary on:选项可以让前端的缓存服务器缓存经过gzip压缩的页面
   server {listen       80;server_name  www.hs.com;location / {root   /usr/local/nginx/html;index  index.html index.php index.htm;}location ~ \.(jpg|gif|png|swf|flv|wma|wmv|asf|mp3|mmf|zip|rar)$ {valid_referers 192.168.79.160;if ($invalid_referer) {return 403;}}location ~ \.php$ {root /usr/local/nginx/html;index index.php;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;include fastcgi.conf;expires 1d;}}

FPM模块优化

对FPM模块进行参数优化
Nginx的PHP解析功能实现如果是交由FPM处理的,为了提高PHP的处理速度,可对FPM模块进行参数的调整

FPM模块参数调整,要根据服务器的内存与服务负载进行调整

启动fpm进程方式 有两种

static:将产生固定数量的fpm进程 static使用pm.max_children指定启动进程数
dynamic:将以动态的方式产生fpm进程 dynamic根据服务器内存与服务负载进行调整
通过pm参数指定
FPM优化参数讲解

Static的方式的参数

pm.max_children:指定启动的进程数量
Dynamic方式的参数pm.max_children:指定启动的进程数量最大的数量
pm.start_servers:动态方式下初始的fpm进程数量
pm.min_spare_servers:动态方式下最小的fpm空闭进程数
pm.max_spare_servers:动态方式下最大的fpm空闭进程数

动态方式因为会结束掉多余的进程,可以回收释放一些内存,所以推荐在内存较少的服务器或者VPS上使用。具体最大数量根据 内存/20M 得到。(比如说512M,建议pm.max_spare_servers设置为20(512*0.8/20)。至于pm.min_spare_servers,则建议根据服务器的负载情况来设置,比较合适的值在5~10之间。)

对于比较大内存的服务器来说,设置为静态的话会提高效率。(比如说2GB内存的服务器,可以设置为50;4GB内存可以设置为100等。)

# 编辑php-fpm配置文件
[root@lnmp logs]# cd /usr/local/php5/etc
[root@lnmp etc]# vim php-fpm.conf# 我的主机内存4g  因此这样配置
pm = dynamic	# 动态模式
pm.max_children = 40	# 最多40个进程
pm.start_servers = 10	# php-fpm启动时候有10个进程
m.min_spare_servers = 5	# 最小空闲5个进程
pm.max_spare_servers = 10	# 最大空闲10个进程

这篇关于nginx优化fpm优化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/876674

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

Nginx实现端口映射的示例代码

《Nginx实现端口映射的示例代码》本文主要介绍了Nginx实现端口映射的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1. 找到nginx的部署路径2. 备份原来的配置文件3. 编辑nginx.conf文件4. 在

Nginx屏蔽服务器名称与版本信息方式(源码级修改)

《Nginx屏蔽服务器名称与版本信息方式(源码级修改)》本文详解如何通过源码修改Nginx1.25.4,移除Server响应头中的服务类型和版本信息,以增强安全性,需重新配置、编译、安装,升级时需重复... 目录一、背景与目的二、适用版本三、操作步骤修改源码文件四、后续操作提示五、注意事项六、总结一、背景与

Docker多阶段镜像构建与缓存利用性能优化实践指南

《Docker多阶段镜像构建与缓存利用性能优化实践指南》这篇文章将从原理层面深入解析Docker多阶段构建与缓存机制,结合实际项目示例,说明如何有效利用构建缓存,组织镜像层次,最大化提升构建速度并减少... 目录一、技术背景与应用场景二、核心原理深入分析三、关键 dockerfile 解读3.1 Docke

Nginx部署HTTP/3的实现步骤

《Nginx部署HTTP/3的实现步骤》本文介绍了在Nginx中部署HTTP/3的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前提条件第一步:安装必要的依赖库第二步:获取并构建 BoringSSL第三步:获取 Nginx

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

Java实现复杂查询优化的7个技巧小结

《Java实现复杂查询优化的7个技巧小结》在Java项目中,复杂查询是开发者面临的“硬骨头”,本文将通过7个实战技巧,结合代码示例和性能对比,手把手教你如何让复杂查询变得优雅,大家可以根据需求进行选择... 目录一、复杂查询的痛点:为何你的代码“又臭又长”1.1冗余变量与中间状态1.2重复查询与性能陷阱1.