查看“Nginx高性能Web服务器详解笔记”的源代码
←
Nginx高性能Web服务器详解笔记
跳转至:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
该页面已被保护以防止编辑和其他操作。
您可以查看并复制此页面的源代码:
=第四章 Nginx服务器的高级配置= [http://blog.chinaunix.net/uid-28266791-id-5692804.html NGINX高性能Web服务器详解(读书笔记) ] ==4.1针对IPv4内核的7个参数优化配置== 参考:[[高并发情况下Linux服务器内核配置]]<br /> 相应的配置文件在 '''/etc/sysctl.conf'''<br /> 使用 <font style="background:lightgray">#/sbin/sysctl -p</font> 命令使修改生效: <nowiki> #添加: net.core.netdev_max_backlog = 262144 net.core.somaxconn = 262144 net.ipv4.tcp_max_orphans = 262144 net.ipv4.tcp_timestamps = 0 net.ipv4. tcp_synack_retries = 1 net.ipv4. tcp_syn_retries = 1 #修改 net.ipv4.tcp_max_syn_backlog = 262144 </nowiki> ==4.2针对CPU的Nginx配置优化的2个指令== ;worker_processes 设置成内核的倍数。针对2核CPU,建议为2或4 :<font style="background:lightgray">worker_processes 4;</font> ;worker_cpu_affinity 若是4核CPU,则: :<font style="background:lightgray">worker_cpu_affinity 0001 0010 0100 1000;</font> ==4.3与网络连接相关的4个指令== ;keepallive_timeout:如:<font style="background:lightgray">keepalive_time 60 50; </font> ;send_timeout:如:<font style="background:lightgray">send_timeout 10s; </font> 如果这个时间之后客户端没有任何活动,Nginx服务器会关闭 ;client_header_buffer_size: 如果发现 400 错误,有很大一部分原因是客户端的请求头部过大造成的 :<font style="background:lightgray">client_header_buffer_size 32k; </font> ;multi_accept:配置Nginx尽可能多的接收客户端的连接请求: <font style="background:lightgray">multi_accept on; </font> ==4.4与事件驱动相关的8个指令== ;(1)use指令: <font style="background:lightgray">use epoll; </font> ;(2)worker_connections指令:每个Worker允许最大同时连接数。 <font style="background:lightgray">worker_connections 51200; </font> :由此可知,服务器最大连接数为: Client = worker_processes * worker_connections / 2 :同时可以设置进程可以打开最大文件句柄数量:<font style="background:lightgray"> #echo "2390251" > /proc/sys/fs/file-max; sysctl -p </font> ;(3)worker_rlimit_sigpending指令:<font style="background:lightgray"> worker_rlimit_sigpending 1024; </font> :用于设置Linux 2.6.6版本之后Linux平台的事件信号队列长度上限。它主要影响事件驱动模型中rtsig模型可以保存的最大信号数。 ;(4)devpoll_changes和devpoll_events指令 :用于设置在/dev/poll事件驱动模型下Nginx服务器可以与内核之间传递事件的数量。前者设置传递给内核的事件数量,后者设置从内核获取的事件数量。默认值为32 ;(5)kqueue_changes和kquue_events指令 :用于设置在kqueue事件驱动模型下Nginx服务器可以与内核之间传递事件的数量。前者设置传递给内核的事件数量, :后者设置从内核获取的事件数量。默认值为512. ;(6)epoll_events指令 :用于设置在epoll事件驱动模型下Nginx服务器可以与内核之间传递事件的数量。默认值为512. :注意:与其他事件驱动模型不同,epoll模型下Nginx服务器向内核传递事件的数量和从内核获取的事件数量是相等的。所以, :不存在epoll_changes指令。 ;(7)rtsig_signo指令 :用于设置rtsig模式使用的2个信号中的第一个,第二个信号是在第一个信号的编号上加1.默认的第一个信号设置为: :SIGRTMIN+10 ;(8)rtsig_overflow_*指令 :该指令有3个具体的指令,rtsig_over_events、rtsig_over_test、rtsig_over_threshold指令。这些指令用来控制当rtsig模式中信号队列溢出时Nginx服务器的处理方式。 :rtsig_over_events:指定队列溢出时使用poll库处理的事件数,默认值为16. :tsig_over_test:指定poll库处理完第几件事后将清空rtsig模型使用的信号队列,默认值为32. :tsig_over_threshold:指定rtsig模式使用的信号队列中的事件超过多少时就需要清空队列了。该指令只对Linux 2.4.x以下版本有效。
返回
Nginx高性能Web服务器详解笔记
。
导航菜单
个人工具
创建账户
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
相关站点
站长博客
分类
DB
WEB
iOS
Android
深度学习
技术收集
素材收集
历史
常用网址
导航
首页
最近更改
随机页面
帮助
常用管理页面
五笔字根表
工具
链入页面
相关更改
特殊页面
页面信息