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. oracle 数据库RPM安装方式

    下载RPM包 Oracle Database Software Downloads 下载Linux x86-64 对应的RPM oracle-database-ee-19c-1.0-1.x86_64. ...

  2. Spring Boot接入 apollo 后启动 dubbo 报错

    原文地址:https://xobo.org/spring-boot-apollo-dubbo-xml-error/ 某Spring Boot项目接入 apollo 后启动 dubbo 报错Caused ...

  3. C++17新特性optional和string_view

    1. optional的作用 类模板 std::optional 管理一个可选的容纳值,即可以存在也可以不存在的值. 一种常见的 optional 使用情况是一个可能失败的函数的返回值.与其他手段,如 ...

  4. CSS选择子简明参考

    Type Selector Example h1 { } Description Selects an HTML tag/element. Universal selector Example * { ...

  5. IBM X3650 M4 M5 设置服务器用UEFI模式启动支持磁盘GPT分区

    1 系统启动 2 按 F1 3 进入BIOS 4 进入 System Configuration 5 找到 Boot Manager 6 找到Boot Modes 7 进入Boot Modes, 找到 ...

  6. 【ztree】获取根节点

    var node = treeObj.getNodesByFilter(function (node) { return node.level == 0 }, true);

  7. ThinkPHP3(结构,路由,模板的调用,后台搭建,系统常量)

    ThinkPHP的结构如下: 在ThinkPHP\Library\Think文件夹中,几个重要的文件 1.App.class.php 框架核心类文件 2.Think.class.php 每次请求都要执 ...

  8. Unable to resolve service for type 'Microsoft.Extensions.Logging.ILogger' while attempting to activate 'xxxxx.Controllers.xxxxController'.

    Unable to resolve service for type 'Microsoft.Extensions.Logging.ILogger' while attempting to activa ...

  9. Python实现堆

    堆 (heap) 是一种经过排序的完全二叉树,其中任一非叶子节点的值均不大于(或不小于)其左孩子和右孩子节点的值. 注:定义来自百度百科. 堆,又被为优先队列(priority queue).尽管名为 ...

  10. JVM 配置常用参数和常用 GC 调优策略

    链接:https://juejin.im/post/5c94a123f265da610916081f   JVM 配置常用参数 堆参数 回收器参数 如上表所示,目前主要有串行.并行和并发三种,对于大内 ...