Nginx配置详情-配置说明-参数优化(一)

前言:Nginx?为什么选择Nginx?还不用Nginx你就out了。Nginx相比Apache拥有更块、高扩展性、高可用性、低内存消耗、单机支持10万以上并发等等。后面将分为几篇文章来简单介绍Nginx的配置等说明。

nginx.conf配置通用语法

块配置项

块配置项由一个块配置项名和一对大括号组成如:
user nobody;
worker_processes 8;

error_log logs/error.log;

pid logs/nginx.pid;//注释掉并不会生效的配置

events {
use epoll;
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

access_log  logs/access.log  main;


}

块配置项由一个块配置项名和一对大括号组成如:
上面代码段中的events、http等都是块配置项。

nginx配置文件中“#”代表注释这之后的配置

定义nginx-worker运行的用户和及用户组
注:nginx需要使用到其他的一些组件来支持,所以最好以root身份来运行,而#master进程管理#worker进程,master进程的权限需高于管理的worker进程,#所以worker应运行的权限低于master
user username groupname;


调试日志类别

全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]
注:日志路径设置成/dev/null就不会输出任何日志,也是关闭日志的唯一手段,如需要debug输出所有日志,必须要在编译configure时加入—with-debug配置项。
error_log /var/log/nginx/error.log info;


正常运行配置项

嵌入其他配置文件。将其他配置文件嵌入到当前的nginx.conf文件中,参数绝对路径或者相对路径,相对路径是当前配置文件的
Include /path/file

保存master进程ID的pid文件存放的路径。默认与configure执行时的参数“—pid-path”所指向的路径是相同的,默认文件存放路径logs/nginx.pid
pid path/file;

设置每个用户发往nginx的信号队列的大小,也就是说,当某个用户的信号队列满了,这个用户再发送的信号量会被丢弃。
worker_rlimit_sigpending limit;

性能优化配置项

nginx进程数,建议设置为等于CPU总核心数。
每个worker进程都是单线程的进程,如果多于CPU内核数,那么会增大进程间切换带来的消耗。
worker_processes 8;

绑定nginx进程到指定CPU内核(8颗CPU内核),每个worker进程都独享一个CPU,就在内核的调度策略上实现了完全的并发,不会出现多个worker进程都在抢同一个CPU,这就会出现同步的问题。
worker_cpu_affinity 10000000 01000000 00100000 00010000 00001000 00000100 00000010 00000001;

事件类配置项

accept_mutex是Nginx的负载均衡锁,当某一个worker进程建立的连接数达到worker_connections配置的最大连接数的7/8时,会大大地减小该worker进程试图建立新TCP连接的机会,以此实现所有worker进程之上处理的客户端请求数量接近,默认开启。
accept_mutex on;

在使用accept锁后,同一时间只有一个worker进程能够取到accept锁。这个accept锁不是阻塞锁,如果取不到会立刻返回。如果有一个worker进程试图取accept锁而没有取到,它至少要等accept_mutex_delay定义的时间间隔后才能再次试图取锁。
accept_mutex_delay 500ms;
批量建立新连接,当时间模型通知有新连接时,尽可能的对本次调度的客服端发起的所有TCP请求都建立连接。
multi_accept off;

选择事件模型,Nginx会自动使用最适合的事件模型,建议Linux内核版本2.6以上选择使用Epoll。
use [ kqueue | rtsig | epoll | /dev/poll | select | poll ];

定义每个worker进程可以同时处理的最大连接数,根据自身的需求而定,太大可能导致负载均衡锁失去作用,8个woeker只有一个非常忙碌,太小又会直接影响到Nginx可处理的最大连接数(最大连接数=worker_processes*worker_connections)
worker_connections 20480;

Nginx为配置一个完整的静态web服务器提供了非常多的功能,主要分为八类:虚拟主机与请求分发、文件路径定义、内存及磁盘资源的分配、网络连接的设置、MIME类型的设置、对客户端请求的限制、文件操作的优化、对客户端请求的特殊处理。

Nginx网络参数优化-Linux网络参数优化->http://blog.csdn.net/hatsune_miku_/article/details/77865780

博客原创:写作不易,转载请标明出处。文章地址:http://blog.csdn.net/hatsune_miku_/article/details/78077683(๑˃∀˂๑)♪阿里嘎多(๑˃∀˂๑)♪
Nginx配置详情-配置说明-参数优化(一)
Nginx配置详情-配置说明-参数优化-核心HTTP配置(二)
Nginx配置详情-配置说明-参数优化-ngx_http_core_module模块变量(三)
Nginx配置详情-配置说明-参数优化-Nginx反向代理、负载均衡(四)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值