zoukankan      html  css  js  c++  java
  • nginx服务的基本配置

    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;
       
     
  • 相关阅读:
    mysql show的常见用法
    【转】在ubuntu下完美安装RTX(解决离线、乱码问题)(图片无法显示)
    bcdedit 替代easybcd 编辑grub
    Ruby学习札记(二)[数组]
    Ruby学习札记(一)常用数据
    [分布式]分布式锁
    移动docker数据文件到nas共享盘、释放C盘空间
    [分布式]分布式限流
    [分布式]分布式会话session、spring-session
    学习强国挑战答题学习资料
  • 原文地址:https://www.cnblogs.com/lty-fly/p/11687046.html
Copyright © 2011-2022 走看看