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跨域问题及解决方案(CORS)

《关于Nginx跨域问题及解决方案(CORS)》文章主要介绍了跨域资源共享(CORS)机制及其在现代Web开发中的重要性,通过Nginx,可以简单地解决跨域问题,适合新手学习和应用,文章详细讲解了CO... 目录一、概述二、什么是 CORS?三、常见的跨域场景四、Nginx 如何解决 CORS 问题?五、基

Nginx实现动态封禁IP的步骤指南

《Nginx实现动态封禁IP的步骤指南》在日常的生产环境中,网站可能会遭遇恶意请求、DDoS攻击或其他有害的访问行为,为了应对这些情况,动态封禁IP是一项十分重要的安全策略,本篇博客将介绍如何通过NG... 目录1、简述2、实现方式3、使用 fail2ban 动态封禁3.1 安装 fail2ban3.2 配

Nginx启动失败:端口80被占用问题的解决方案

《Nginx启动失败:端口80被占用问题的解决方案》在Linux服务器上部署Nginx时,可能会遇到Nginx启动失败的情况,尤其是错误提示bind()to0.0.0.0:80failed,这种问题通... 目录引言问题描述问题分析解决方案1. 检查占用端口 80 的进程使用 netstat 命令使用 ss

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

nginx部署https网站的实现步骤(亲测)

《nginx部署https网站的实现步骤(亲测)》本文详细介绍了使用Nginx在保持与http服务兼容的情况下部署HTTPS,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录步骤 1:安装 Nginx步骤 2:获取 SSL 证书步骤 3:手动配置 Nginx步骤 4:测

Deepseek使用指南与提问优化策略方式

《Deepseek使用指南与提问优化策略方式》本文介绍了DeepSeek语义搜索引擎的核心功能、集成方法及优化提问策略,通过自然语言处理和机器学习提供精准搜索结果,适用于智能客服、知识库检索等领域... 目录序言1. DeepSeek 概述2. DeepSeek 的集成与使用2.1 DeepSeek API

Windows设置nginx启动端口的方法

《Windows设置nginx启动端口的方法》在服务器配置与开发过程中,nginx作为一款高效的HTTP和反向代理服务器,被广泛应用,而在Windows系统中,合理设置nginx的启动端口,是确保其正... 目录一、为什么要设置 nginx 启动端口二、设置步骤三、常见问题及解决一、为什么要设置 nginx

Tomcat高效部署与性能优化方式

《Tomcat高效部署与性能优化方式》本文介绍了如何高效部署Tomcat并进行性能优化,以确保Web应用的稳定运行和高效响应,高效部署包括环境准备、安装Tomcat、配置Tomcat、部署应用和启动T... 目录Tomcat高效部署与性能优化一、引言二、Tomcat高效部署三、Tomcat性能优化总结Tom

nginx-rtmp-module模块实现视频点播的示例代码

《nginx-rtmp-module模块实现视频点播的示例代码》本文主要介绍了nginx-rtmp-module模块实现视频点播,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习... 目录预置条件Nginx点播基本配置点播远程文件指定多个播放位置参考预置条件配置点播服务器 192.

解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)

《解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)》该文章介绍了使用Redis的阻塞队列和Stream流的消息队列来优化秒杀系统的方案,通过将秒杀流程拆分为两条流水线,使用Redi... 目录Redis秒杀优化方案(阻塞队列+Stream流的消息队列)什么是消息队列?消费者组的工作方式每