Nginx在运行时,至少必须加载几个核心模块和一个事件类模块。这些模块运行时所支持的配置项称为基本配置。由于配置项较多,所以把它们按照用户使用时的预期功能分为四类:
  • 用于调试、定位问题的配置项
  • 正常运行的必备配置项
  • 优化性能的配置项
  • 事件类配置项
1. 用于调试进程和定位问题的配置项
    (1) 是否以守护进程方式运行Nginx
语法:daemon on | off;
    (2) 是否以master/worker方式工作(如果为off,则maser进程自身处理请求,不会fork出子进程)
语法:maser_process on | off;
    (3) error日志的设置
       语法:error_log /path/file level;默认:error_log logs/error.log  error
level 是日志的输出级别,取值范围是debug、info、notice、warn、error、crit、alert、emerg,从左至右级别依次增大。当设定为一个级别时,大于或等于该级别的日志都会被输出到/path/file文件中,小于该级别的则不会输出
   (4) 仅对指定的客户端输出debug级别的日志
语法:debug_connection [IP | CIDR]  这个配置项属于事件类配置,它必须放在events {....}中才有效。例如:
events {
debug_connection 10.224.66.14;
}
那么,仅仅来自以上 Ip地址的请求才会输出debug级别的日志,其他请求仍然使用error_log中配置的日志级别。
    (5) 限制coredump核心转储文件的大小
语法:worker_rimit_core  size;
在Linux系统中,当进程发生错误或收到信号而终止时,系统会将进程执行时的内存内容(核心映像)写入一个文件(core文件),以作调试用,这就是所谓的核心转储。
    (6) 指定coredump文件生成目录
语法:working_directory  path;
2. 正常运行的配置项
   (1) 定义环境变量
语法:env  VAR|VAR=VALUE
    (2) 嵌入其他配置项
语法:include  /path/file;
include配置项可以将其他配置文件嵌入到当前的nginx.conf文件中。
    (3) pid文件的路径
语法:pid  path/file;
保存master进程ID的pid文件存放路径。
    (4) Nginx worker进程运行的用户及用户组
语法:user  usernama  [groupname]
user用于设置master进程启动后,fork出的子进程运行在哪个用户和用户组下。
    (5) 指定Nginx worker进程可以打开的最大文件句柄数
语法:worker_rlimit_nofile limit;
    (6) 限制信号队列
语法:worker_rlimit_sigpending  limit;
3. 优化性能的配置项
    (1) Nginx worker 进程个数
语法:worker_processes  number;
一般情况下,用户要配置与CPU内核数相等的worker进程数,并且使用worker_cpu_affinity配置来绑定CPU内核。
    (2) 绑定Nginx worker 进程到指定的CPU内核
语法:worker_cpu_affinity  cpumask [cpumask ...]
例如,如果有4颗CPU内核,就可以设置为:
worker_processes  4;
worker_cpu_affinity  1000  0100  0010  0001;
cpumask:意思是有几个CPU,就有几位,1表示该内核开启,0表示该内核关闭
    (3) SSL硬件加速
语法:ssl_engine  device;
如果服务器上有SSL硬件加速设备,那么就可以配置以加快SSL协议的处理速度。
    (4) Nginx worker进程优先级设置
语法:worker_priority  nice;
在Linux或其他类Unix系统中,当许多进程都处于可执行状态时,将按照所有进程的优先级来决定本次内核选择哪一个进程执行。进程所分配的时间片大小也与进程优先级相关,优先级越高,进程分配到的时间片也越大。nice值得范围:-20 ~ +19。-20是最高优先级。如果希望nginx占用更多的系统资源,可以把nice值设置的小一点。
4. 事件类配置项
   (1) 是否打开accept锁
语法:accept_mutex  [on | off]  默认是开启的
accept_mutex是nginx的负载均衡锁,accept_mutex这把锁可以让多个worker进程轮流地、序列化地与新的客户端建立TCP连接。当某一个worker进程建立的连接数量达到worker_connections配置的最大连接数的7/8时,会大大减小该worker进程试图建立新的TCP连接的机会,依此实现所有worker进程之上处理的客户端请求数尽量接近。
    (2) 使用accept锁后到真正建立连接之间的延迟时间
语法:accept_mutex_delay  Nms;
在使用accept锁后,如果一个worker进程试图取accept锁没有取到,它至少要等accept_mutex_delay定义的时间间隔后才能再次试图取锁。
    (3) 选择事件模型
语法:use  [ kqueue | rtsig | epoll | /dev/poll | select | poll | eventport ]
epoll性能最高。
    (4) 每个worker的最大连接数
语法:worker_connections  number;
   
 

nginx服务的基本配置的更多相关文章

  1. samba和nginx服务

    samba和nginx服务 1.s配置amba samba的功能: samba是一个网络服务器,用于Linux和Windows之间共享文件. 1.1配置环境 关闭防火墙和selinux systemc ...

  2. Nginx服务安装配置

    1.Nginx介绍 Nginx是一个高性能的HTTP和反向代理服务器,由俄罗斯人开发的,第一个版本发布于2004年10月4日.Nginx由于出色的性能,在世界范围内受到了越来越多人的关注,其特点是占有 ...

  3. (转)不停止Nginx服务的情况下平滑变更Nginx配置

    在不停止Nginx服务的情况下平滑变更Nginx配置 1.修改/usr/local/webserver/nginx/conf/nginx.conf配置文件后,请执行以下命令检查配置文件是否正确: /u ...

  4. nginx服务配置---php服务接入

    前言: 最近要搭建一个内部的wiki系统, 网上搜了一圈, 也从知乎上搜集了一些大神的评价和推荐. 重点找了几个开源的wiki系统, 不过发现他们都是采用php来实现的. 于是乎需要配置php环境, ...

  5. Nginx高性能服务器安装、配置、运维 (4) —— Nginx服务、架构及其信号

    五.Nginx服务.架构及其信号 (1)Nginx服务的查看 1.netstat -antp 查看Nginx是否在80端口运行: 2.ps aux|grep nginx 查看nginx相关进程: 发现 ...

  6. CentOS 6.5 下Nginx服务的安装与配置

    参考网站: http://www.cnblogs.com/zhuhongbao/archive/2013/06/04/3118061.html http://www.cnblogs.com/jilia ...

  7. 【zabbix告警监控】配置zabbix监控nginx服务

    zabbix监控nginx,nginx需要添加--with-http_stub_status模块 使用zabbix监控nginx,首先nginx需要配置开启ngx_status.但是我这边nginx安 ...

  8. Nginx服务优化及优化深入(配置网页缓存时间、日志切割、防盗链等等)

    原文:https://blog.51cto.com/11134648/2134389 默认的Nginx安装参数只能提供最基本的服务,还需要调整如网页缓存时间.连接超时.网页压缩等相应参数,才能发挥出服 ...

  9. zabbix4.2配置监控nginx服务

    1.监控原理 通过status模块监控(--with-http_stub_status_module)  2.修改nginx配置(/etc/nginx/conf.d/default.conf) 在被监 ...

随机推荐

  1. supervisor配置进程

    具体配置见此页面:https://www.jianshu.com/p/ac6c84a2f415 设置开机启动:https://blog.csdn.net/xyang81/article/details ...

  2. H3C交换机恢复出厂设置

    reset saved-configuration reboot 恢复出厂设置后查看当前配置: ..............................

  3. PHP Y2K38 (2038年) 问题

    PHP 的 strtotime('2100-01-01'); 转换失败:经查询是因为32位系统的 Y2K38问题: Y2K38 问题:当时间大于 2038年01月19日03:14:07 时,strto ...

  4. 超简易简易PHP爬虫

    利用CURL和DOMDocument.通过xpath筛选数据,实现的简易PHP爬虫 <?php header('Content-type: text/plain; charset=utf-8') ...

  5. pan wutong团队隐私协议

    本隐私权政策详细说明了pan wutong团队(“我们”或“我们的”)通过我们的应用程序和网站收集的信息,以及我们将如何使用这些信息. 1.我们不会通过我们的应用程序或网站收集儿童的个人信息. 我们深 ...

  6. 小程序报错:对应的服务器 TLS 为 TLS 1.0 ,小程序要求的 TLS 版本必须大于等于 1.2

    我这里出现此错误的原因是,搭载域名网站的服务器是windows2008 r2,配置的域名证书是TLS1.0版本,需要在服务器注册表中加入TLS的其他版本. 处理办法如下 小程序报错 TLS 版本必须大 ...

  7. IIS6远程代码执行漏洞复现CVE-2017-7269

    简述 CVE-2017-7269是IIS 6.0中存在的一个栈溢出漏洞,在IIS6.0处理PROPFIND指令的时候,由于对url的长度没有进行有效的长度控制和检查,导致执行memcpy对虚拟路径进行 ...

  8. EF的 NoTracking 的一些记录

    NoTracking官方解释 跟踪与非跟踪查询 跟踪行为可控制 Entity Framework Core 是否将有关实体实例的信息保留在其更改跟踪器中. 如果已跟踪某个实体,则该实体中检测到的任何更 ...

  9. PS,大鹏视频,UI美工设计, 精品课程视频(500G)

    PS,大鹏视频,UI美工设计, 精品课程视频(500G 左右) ,需要的可以加我QQ 358918610 //--------------------------------------------- ...

  10. POJ 2386 DFS深搜入门

    题目链接 Time Limit: 1000MS Memory Limit: 65536K Description Due to recent rains, water has pooled in va ...