CentOS 6.3下Nginx性能調優

CentOS 6.3Nginx性能調優

.Nginx優化配置

1.主配置文件優化:
# vi /usr/local/nginx/conf/nginx.conf
—————————————–
user nginx nginx;

worker_processes 8;
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000;


error_log  /usr/local/nginx/logs/nginx_error.log  crit;


pid        /usr/local/nginx/logs/nginx.pid;


worker_rlimit_nofile 204800;


events
{
 use epoll;
 worker_connections 204800;
}

 
 


http {
      include      mime.types;
      default_type  application/octet-stream;


      log_format  main  ‘$remote_addr – $remote_user [$time_local] “$request” ‘
                        ‘$status $body_bytes_sent “$http_referer” ‘
                        ‘”$http_user_agent” “$http_x_forwarded_for”‘;


      access_log  logs/access.log  main;


      charset  utf-8;

 
 

      server_names_hash_bucket_size 128;
      client_header_buffer_size 32k;
      large_client_header_buffers 4 32k;
      client_max_body_size 20m;


      sendfile on;
      tcp_nopush on;


      keepalive_timeout 60;


      fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2
                        keys_zone=TEST:10m
                        inactive=5m;
      fastcgi_connect_timeout 300;
      fastcgi_send_timeout 300;
      fastcgi_read_timeout 300;
      fastcgi_buffer_size 64k;
      fastcgi_buffers 4 64k;
      fastcgi_busy_buffers_size 128k;
      fastcgi_temp_file_write_size 128k;


      open_file_cache max=204800 inactive=20s;
      open_file_cache_min_uses 1;
      open_file_cache_valid 30s;


      tcp_nodelay on;


      gzip on;
      gzip_min_length  1k;
      gzip_buffers    4 16k;
      gzip_http_version 1.0;
      gzip_comp_level 2;
      gzip_types      text/plain application/x-javascript text/css application/xml;
      gzip_vary on;
}
—————————————–

:部分配置詳解:
worker_processes 8;
nginx
進程數,建議按照cpu數目來指定,一般為它的倍數。

worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
為每個進程分配cpu,上例中將8個進程分配到8cpu,當然可以寫多個,或者將一個進程分配到多個cpu


worker_rlimit_nofile 204800;
這個指令是指當一個nginx進程打開的最多文件描述符數目,理論值應該是最多打開文件數(ulimit -n)與nginx進程數相除,但是nginx分配請求並不是那麼均勻,所以最好與ulimit -n的值保持一致。
:這裡需要設置 ulimit -SHn 204800

use epoll;
使用epollI/O模型,這個不用說吧。

worker_connections 204800;
每個進程允許的最多連接數,理論上每台nginx服務器的最大連接數為worker_processes*worker_connections

keepalive_timeout 60;
keepalive
超時時間。

client_header_buffer_size 4k;
客戶端請求頭部的緩衝區大小,這個可以根據你的系統分頁大小來設置,一般一個請求的頭部大小不會超過1k,不過由於一般系統分頁都要大於1k,所以這裡設置為分頁大小。分頁大小可以用命令getconf PAGESIZE取得。

open_file_cache max=102400 inactive=20s;
這個將為打開文件指定緩存,默認是沒有啟用的,max指定緩存數量,建議和打開文件數一致,inactive是指經過多長時間文件沒被請求後刪除緩存。

open_file_cache_valid 30s;
這個是指多長時間檢查一次緩存的有效信息。

open_file_cache_min_uses 1;
open_file_cache
指令中的inactive參數時間內文件的最少使用次數,如果超過這個數字,文件描述符一直是在緩存中打開的,如上例,如果有一個文件在inactive時間內一次沒被使用,它將被移除。

以下文章點擊率最高

Loading…

     

如果這文章對你有幫助,請掃左上角微信支付-支付寶,給於打賞,以助博客運營