热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

nginx高性能配置详解

:本篇文章主要介绍了nginx高性能配置详解,对于PHP教程有兴趣的同学可以参考一下。
nginx配置详解
#全局配置
#高层配置
user www-data#运行用户默认配置
pid /var/run/nginx.pid;#端口号默认配置
worker_processes 8;#定义了nginx对外提供web服务时的worker进程数
#最优值取决于许多因素,包括(但不限于)CPU核的数量、存储数据的硬盘数量及负载模式
#通常设置成和cpu的数量相等(设置为"auto"将尝试自动检测它)
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;#将8个进程分配到8个cpu,当然可以写多个,或者将一个进程分配到多个cpu
worker_rlimit_nofile 200000;#更改worker进程的最大打开文件数限制
#如果没设置的话,这个值为操作系统的限制
#设置后你的操作系统和Nginx可以处理比“ulimit -a”更多的文件,所以把这个值设高,这样nginx就不会有"too many open files"问题了
#假如填写10240,总并发量达到3-4万时就有进程可能超过10240了,这时会返回502错误
#这个指令是指当一个nginx 进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx 进程数相除,但是nginx 分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致
events {
worker_connections 102400; #设置可由一个worker进程同时打开的最大连接数
#如果设置了上面提到的worker_rlimit_nofile,我们可以将这个值设得很高。
#重点:最大客户数也由系统的可用socket连接数限制(~ 64K),所以设置不切实际的高没什么好处
#理论上每台nginx 服务器的最大连接数为worker_processes*worker_connections
multi_accept on; #告诉nginx收到一个新连接通知后接受尽可能多的连接
use epoll; #设置用于复用客户端线程的轮询方法
}
http {
server_tokens off; #并不会让nginx执行的速度更快,但它可以关闭在错误页面中的nginx版本数字,这样对于安全性是有好处的
sendfile on; #可以让sendfile()发挥作用
tcp_nopush on; #告诉nginx在一个数据包里发送所有头文件,而不一个接一个的发送
tcp_nodelay on; #告诉nginx不要缓存数据,而是一段一段的发送--当需要及时发送数据时,就应该给应用设置这个属性,这样发送一小块数据信息时就不能立即得到返回值
access_log off; #设置nginx是否将存储访问日志。关闭这个选项可以让读取磁盘IO操作更快(aka,YOLO)
error_log /var/log/nginx/error.log crit;#告诉nginx只能记录严重的错误
keepalive_timeout 10; #给客户端分配keep-alive链接超时时间。服务器将在这个超时时间过后关闭链接。我们将它设置低些可以让ngnix持续工作的时间更长
client_header_timeout 10; #设置请求头的超时时间。我们也可以把这个设置低些。
client_body_timeout 10; #设置请求体的超时时间。我们也可以把这个设置低些。
reset_timedout_connection on; #告诉nginx关闭不响应的客户端连接。这将会释放那个客户端所占有的内存空间。
send_timeout 10;#指定客户端的响应超时时间。这个设置不会用于整个转发器,而是在两次客户端读取操作之间。如果在这段时间内,客户端没有读取任何数据,nginx就会关闭连接
limit_conn_zone $binary_remote_addr z>#设置用于保存各种key(比如当前连接数)的共享内存的参数。
#5m就是5兆字节,这个值应该被设置的足够大以存储(32K*5)32byte状态或者(16K*5)64byte状态。
limit_conn #为给定的key设置最大连接数。这里key是addr,我们设置的值是100,也就是说我们允许每一个IP地址最多同时打开有100个连接
include /etc/nginx/mime.types; #只是一个在当前文件中包含另一个文件内容的指令。这里我们使用它来加载稍后会用到的一系列的MIME类型
default_type text/html;#设置文件使用的默认的MIME-type
charset UTF-8; #设置头文件中的默认的字符集
gzip on; #是告诉nginx采用gzip压缩的形式发送数据。这将会减少我们发送的数据量
gzip_disable "msie6"; # 为指定的客户端禁用gzip功能。我们设置成IE6或者更低版本以使我们的方案能够广泛兼容
# gzip_static on; #告诉nginx在压缩资源之前,先查找是否有预先gzip处理过的资源
#这要求你预先压缩你的文件,从而允许你使用最高压缩比,这样nginx就不用再压缩这些文件了
gzip_proxied any; #允许或者禁止压缩基于请求和响应的响应流。我们设置为any,意味着将会压缩所有的请求。
gzip_min_length 1000; #设置对数据启用压缩的最少字节数。如果一个请求小于1000字节,
#我们最好不要压缩它,因为压缩这些小的数据会降低处理此请求的所有进程的速度
gzip_comp_level 4; #设置数据的压缩等级。这个等级可以是1-9之间的任意数值,9是最慢但是压缩比最大的。
#我们设置为4,这是一个比较折中的设置
gzip_buffers 16 8k;
gzip_types text/plain text/css application/json application/x-Javascript text/xml application/xml application/xml+rss text/Javascript;#设置需要压缩的数据格式
open_file_cache max=100000 inactive=20s; #打开缓存的同时也指定了缓存最大数目,以及缓存的时间。
#我们可以设置一个相对高的最大时间,这样我们可以在它们不活动超过20秒后清除掉
open_file_cache_valid 30s; #在open_file_cache中指定检测正确信息的间隔时间
open_file_cache_min_uses 2; #定义了open_file_cache中指令参数不活动时间期间里最小的文件数
open_file_cache_errors on;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}

以上就介绍了nginx高性能配置详解,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

推荐阅读
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • 本文将深入探讨PHP编程语言的基本概念,并解释PHP概念股的含义。通过详细解析,帮助读者理解PHP在Web开发和股票市场中的重要性。 ... [详细]
  • 本文详细介绍如何通过修改配置文件来隐藏Apache、Nginx和PHP的版本号,从而增强网站的安全性。我们将提供具体的配置步骤,并解释这些设置的重要性。 ... [详细]
  • 深入理解OAuth认证机制
    本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文探讨了 RESTful API 和传统接口之间的关键差异,解释了为什么 RESTful API 在设计和实现上具有独特的优势。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
author-avatar
卢启红
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有