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;
(3)error日志的设置
	语法: 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-debug
(6)限制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的信号队列的大小。也就是说,当某个用户的信号队列满了,这个用户再发送的信号量会被丢掉。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值