CentOS6.3下nginx效能最佳化配置詳解(1/2)

來源:互聯網
上載者:User

一.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個進程分配到8個cpu,當然可以寫多個,或者將一個進程分配到多個cpu


worker_rlimit_nofile 204800;

這個指令是指當一個nginx進程開啟的最多檔案描述符數目,理論值應該是最多開啟檔案數(ulimit -n

)與nginx進程數相除,但是nginx分配請求並不是那麼均勻,所以最好與ulimit -n的值保持一致。

注:這裡需要設定 ulimit -SHn 204800


use epoll;

使用epoll的I/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時間內一次沒被使用,它將被移除。

首頁 1 2 末頁

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.