• Nginx配置

    Nginx支持一台主机上搭建多个https:TLS SNI support enabled

    配置文件组成部分

        主配置文件:nginx.conf

        子配置文件:include conf.d/*.conf

        fastcgi,uwsgi,scgi等协议相关的配置文件

    主配置文件的配置指令:

        directive value [value2 ...];

    注意:

        1、指令必须以分号结尾

        2、支持使用配置变量

            内建变量:由Nginx模块引入,可直接引用

            自定义变量:由用户使用set命令定义

                set variable_name value;

            引用变量:$variable_name

    主配置文件结构:四部

        main block:主配置段,即全局配置段,对所有功能(http,mail)都有效

        event {

            . . .

        }   事件驱动相关配置

        http {

            . . .

        }  http/https 协议相关配置段

        mail {

            . . .

        }    mail协议相关配置段

        stream {

            . . .

        }    stream服务器相关配置段

    http协议相关的配置结构

        http {

            . . .

            . . .    各server的公共配置

            server { 每个server用于定义一个虚拟主机

                . . .

            }

            server {

                . . .

                server_name   虚拟主机名

                root   主目录

                alias   路径别名

                location [OPERATOR] URL {   指定URL的特性

                        . . .

                        if CONDITION {

                            . . .

                        }

                }

            }

        }

    nginx配置

        Main全局配置段常见的配置指令分类

            正常运行必备的配置

            优化性能相关的配置

            用于调试及定位问题相关的配置

            事件驱动相关的配置

        帮助文档

            http://nginx.org/en/docs/

            image.png

        正常运行的必备配置:

            1、user

                指定worker进程的运行身份,如组不指定,默认同用户名

            2、pid /PATH/TO/PID_FILE

                指定存储nginx主进程PID的文件路径

            3、include file | mask

                指明包含进来的其它配置文件片断

            4、load_module file 

                模块加载配置文件:/usr/share/nginx/modules/*.conf

                指明要装载的动态模块路径:/usr/lib64/nginx/modules

        性能优化相关配置

            1、worker_process number | auto

                worker进程的数量;通常应该为当前主机的CPU的物理核心数

            2、worker_cpu_affinity cpumask . . .              

                worker_cpu_affinity auto [cpumask] 提高缓存命中率

                CPU MASK: 00000001:0号CPU

                    00000010:1号CPU

                    10000000:8号CPU

                worker_cpu_affinity 0001 0010 0100 1000;

                worker_cpu_affinity 0101 1010;

            3、worker_priority number

                指定worker进程的nice值,设定worker进程优先级:[-20,20]

            4、worker_rlimit_nofile number 

                worker进程所能够打开的文件数量上限;如65535

        事件驱动相关配置

            events {

                . . .

            }

            1、worker_connections number

                每个worker进程所能够打开的最大并发连接数量;如10240

                总最大并发数:worker_process * worker_connections

            2、use method

                指明并发连接请求的处理方法,默认自动选择最优方法;use epoll

            3、accept_mutex on | off 互斥

                处理新的连接请求的方法;on指由各个worker轮流处理新请求,off指每个新请求的到达都会通知(唤醒)所有的worker进程,但只有一个进程可获得连接,造成“惊群”,影响性能

        高度和定位问题

            1、daemon on | off

                是否以守护进程方式运行nginx,默认是on守护进程方式;适用于测试环境使用

            2、master_process on  | off

                是否以master/worker模型运行nginx;默认为on

                off将不启动worker进程

            3、error_log file [level]

                错误日志文件及其级别;出于调试需要,可设定为debug;但debug仅在编译时使用了“--with-debug”选项时才有效                

                方式:file /path/logfile;

                stderr:发送到标准错误

                syslog:server-address[,parameter=values]:发送到syslog memory:size 内存

                level:debug|info|notice|warn|error|crit|alter|emerg

        http协议相关配置

            http {

                . . . 

            }