Nginx基本配置

一、Nginx配置项单位
1.配置指定空间大小
    配置时可以使用k(不分大小写,可以写为K)或m(不分大小写,可以写为M)作为空间大小的单位。1k=1千字节(KB)、1m=1兆字节(MB)
    例如:
        gzip_buffers    48K;
        client_max_body_size    64M;
2.配置指定时间长短
    配置时时可以使用以下单文ms(毫秒),s(秒),m(分钟),h(小时),d(天),w(周,包含7天),M(月,包含30天),y(年,包括365天)。如果不带单位,默认为s(秒),不建议使用不带单位的时间配置。
    例如:
        expires 10y;
        proxy_read_timeout 600;
        client_body_timeout 2m;

二、用于调试进程和定位问题的配置项
(1)是否以守护进程方式运行Nginx
    语法: daemon on|off;
    默认: daemon on;
(2)是否以master/worker方式工作
    语法: master_process on|off;
    默认: master_process on;
(3error日志的设置
    语法: error_log pathfile level; 
    默认: error_log logs/error.log error;
    例子:
        #日志文件路径使用绝对路径,建议使用绝对路径
        error /home/logs/error.log;
        配置时候,nginx安装路径/sbin/下执行./nginx -t 命令检查是否配置错误,若干配置无误,执行./nginx -s reload 命令进行重启
        修改日志配置后,安装路径下logs目录中的error.log文件一样会打印ngnix的启动信息,但不会打印错误信息。
        #注意,修改Nginx的日志路径,需要在相关的路径路径下新建改文件,否则配置失败
    pathfile 等于/dev/null;关闭日志
(4)是否处理几个特殊的调试点
    语法: debug_points[stop|abort]
    通常不会使用这个配置项。
(5)仅对指定的客户端输出debug级别的日志
    语法: debug_connection[IP|CIDR]
    例子:
    events {
        debug_connection 10.10.11.150;
        debug_connection 10.224.57.0/24;
    }
    这样,仅仅来自以上IP地址的请求才会输出debug级别的日志,其他请求仍然沿用error_log中配置的日志级别。
    注意:完成此配置安装时需要加上 --with-debug6)限制coredump核心转储文件的大小
    语法: worker_rlimit_core size;
        在Linux系统中,当进程发生错误或收到信号而终止时,系统会将进程执行时的内存内容(核心映像)写入一个文件(core文件),以作为调试之用,这就是所谓的核心转储(core dumps)。当Nginx进程出现一些非法操作(如内存越界)导致进程直接被操作系统强制结束时,会生成核心转储core文件,可以从core文件获取当时的堆栈、寄存器等信息,从而帮助我们定位问题。但这种core文件中的许多信息不一定是用户需要的,如果不加以限制,那么可能一个core文件会达到几GB,这样随便coredumps几次就会把磁盘占满,引发严重问题。通过worker_rlimit_core配置可以限制core文件的大小,从而有效帮助用户定位问题。
(7)指定coredump文件生成目录
    语法: working_directory path;
        worker进程的工作目录。这个配置项的唯一用途就是设置coredump文件所放置的目录,协助定位问题。因此,需确保worker进程有权限向working_directory指定的目录中写入文件。
三、正常运行的配置项
(1)定义环境变量
    语法: env VAR|VAR=VALUE
    这个配置项可以让用户直接设置操作系统上的环境变量。
    例如:
        env TESTPATH=/tmp/;
(2)嵌入其他配置文件
    语法: include pathfile;
    例如:
        include mime.types;
        include vhost/*.conf;

(3)pid文件的路径
    语法: pid path/file;
    默认: pid logs/nginx.pid;
    注:linux系统下一切都是文件,所以每一个进程都有其文件描述符,而nginx进程将其自己的文件描述符写入了nginx.pid中,我们需要告诉nginx,让其重新打开一个新的日志文件(日志文件的配置详情可看这里,简单说就是让日志记录什么内容。)于是我们需要这条指令:kill -USR1 `cat ${pid_path}`  
(4)Nginx worker进程运行的用户及用户组
    语法: user username[groupname];
    默认: user nobody nobody;
    user用于设置master进程启动后,fork出的worker进程运行在哪个用户和用户组下。当按照“user username;”设置时,用户组名与用户名相同。
    若用户在configure命令执行时使用了参数--user=username和--group=groupname,此时nginx.conf将使用参数中指定的用户和用户组。5)指定Nginx worker进程可以打开的最大句柄描述符个数
    语法: worker_rlimit_nofile limit;
(6)限制信号队列
    语法: worker_rlimit_sigpending limit;
    设置每个用户发往Nginx的信号队列的大小。也就是说,当某个用户的信号队列满了,这个用户再发送的信号量会被丢掉。

你可能感兴趣的:(分布式知识)