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;
        }




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