nginx配置文件详解与配置文件优化(三)


nginx块指令:

    全局块:配置nginx全局的指令

    events块:配置nginx与用户连接相关指令

    http块:提供HTTP服务

    server块:配置虚拟主机,一个http可以有多个server

    location块:匹配URL后需要做的相关操作。


nginx.conf配置文件详解:

全局块:
	user   指定默认用户
	worker_processes  1; 指定工作进程数。和cpu核数相关.cpu核数*2
	worker_rlimit_nofile 102400; 进程打开的最大文件数。
	worker_cpu_affinity 0001;  绑定CPU。
	
	error_log   错误日志路径.日志等级.
	pid    pid文件的路径。
	  
	
events块:
    use epoll; 使用epoll的I/O多路复用模型.
	worker_connections   每个工作进程所支持的最大连接数。

http块:
	include       mime.types;   媒体类型。
	default_type  application/octet-stream;   默认类型:以二进制文件流的方式传输。

	log_format   日志格式。
	access_log  main  访问日志文件路径。 main指定名称。
	sendfile   加快传输文件的机制。
	keepalive_timeout  处理完一个连接后,tcp连接保持的时间。
	gzip    对文件进行压缩,传输到客户端。


server块:
    listen     监听端口
	server_name   域名或IP	
	charset    指定响应内容的编码(utf-8,gbk)
	access_log  虚拟主机的访问日志路径。

location块:
	root  网站默认根目录。
	index  默认index或默认index后缀。
	
	error_page  错误页面。
	
	location ~ \.php$ {     #代理php脚本
            root           html;
            fastcgi_pass   127.0.0.1:9000;  代理到后端的php。
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;  指定php脚本名。
            include        fastcgi_params;
        }


二. 配置文件优化:

全局块优化参数:
1.优化工作进程个数:设置为CPU的总核数或CPU总颗数*2
example:
	worker_processes  2;         # 2核CPU的配置
	worker_cpu_affinity 01 10;   #工作进程CPU绑定。

	worker_processes  4;         # 4核CPU的配置
	worker_cpu_affinity 0001 0010 0100 1000;  #工作进程CPU绑定。

2.工作进程CPU绑定:充分利用硬件的多 CPU 多核资源。
	worker_cpu_affinity 01 10;       #2核CPU配置.
	worker_cpu_affinity 0001 0010 0100 1000;  #4核CPU配置。
 
共4核CPU,设置2个工作进程绑定到2核cpu上:
worker_cpu_affinity 0001 0010 0001 0010;

3.增大打开最大文件数:
worker_rlimit_nofile 102400;

events块配置:
 事件处理模型:
    use epoll;
 连接数:
    worker_connections  65535;
	

4. http块配置:

   sendfile提升文件传输
	sendfile  on;
 
   屏蔽输出版本:
	server_tokens off;

   keepalive_timeout 保持时间:
        keepalive_timeout  30;
   #可以设置稍微小点。
   #设置30s,可以减小socket连接和释放的资源的花销。
   
   gzip压缩:
        gzip  on;
        gzip_buffers 4 16k;  以16k为单位,用4倍的内存缓存这个文件。
	
	gzip_comp_level 3;  压缩级别.数字越小,压缩比例越高.占用资源越多。
	
	gzip_disable "MSIE[1-6]";  #禁用客户端IE浏览器访问。
	
	gzip_min_length 1k;     #最小文件为1k以上的文件才进行压缩。
	gzip_http_version 1.0;  #压缩所支持的http版本。
	
	gzip_types text/plain application/html application/css application/js;
	#压缩文件类型:文本,html,css,js 
	
	gzip_vary on;  #根据http头部去判断是否进行压缩。
	
	client_max_body_size 8m;   #加大客户端上传文件的大小。
	
5.server块配置:
  	charset utf-8;
	
6. 错误页面优雅显示:
   server块配置:
	error_page  404              /404.html;
        location = /404.html {
            root html;
        }
      在/usr/local/nginx/html/目录下创建404.html. 自定义错误页面的内容。
	  
	  
7. 启用客户端缓存策略:
   server块配置:
	    location ~ \.(jpg|png|gif) {
            expires 30d;
        }
		
		  location ~ \.(html|css|js) {
            expires 1d;
        }




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章