提升CPU的親和力,將CPU與進程綁定,減小進程間的切換,避免CPU資源使用不均javascript
修改用戶打開的最大句柄數php
vim /etc/security/limits.conf * soft nofile 65535 * hard nofile 131072
修改nginx打開的最大句柄數css
worker_rlimit_nofile 65535;
注意:若是圖片顯示不止常把這個改爲off。html
主要目的是保護服務器資源,CPU,內存,控制鏈接數,由於創建鏈接也是須要消耗資源的前端
keepalived_timeout 60; #客戶端鏈接保持會話超時時間,超過這個時間,服務器斷開這個連接tcp_nodelay on; #也是防止網絡阻塞,不過要包涵在keepalived參數纔有效 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時間內一次沒被使用,他將被移除 client_header_timeout 15; #設置請求頭的超時時間。咱們也能夠把這個設置低些,若是超過這個時間沒有發送任何數據,nginx將返同request time out的錯誤 client_body_timeout 15; #設置請求體的超時時間。咱們也能夠把這個設置低些,超過這個時間沒有發送任何數據,和上面同樣的錯誤提示 reset_timeout_connection on; #告訴nginx關閉不響應的客戶端鏈接。這將會釋放那個客戶端所佔有的內存空間。 send_timeout 15;響應客戶端超時時間,這個超時時間僅限於兩個活動之間的時間,若是超過這個時間,客戶端沒有任何活動,nginx關閉鏈接 server_tokens off; #並不會讓nginx執行的速度更快,但它能夠關閉在錯誤頁面中的nginx版本數字,這樣對於安全性是有好處的。 client_max_body_size 10m; #上傳文件大小限制
fastcgi_connect_timeout 600; #指定鏈接到後端FastCGI的超時時間。 fastcgi_send_timeout 600; #向FastCGI傳送請求的超時時間。 fastcgi_read_timeout 600; #指定接收FastCGI應答的超時時間。 fastcgi_buffer_size 64k; #指定讀取FastCGI應答第一部分須要用多大的緩衝區,默認的緩衝區大小爲fastcgi_buffers指令中的每塊大小,能夠將這個值設置更小。 fastcgi_buffers 4 64k; #指定本地須要用多少和多大的緩衝區來緩衝FastCGI的應答請求,若是一個php腳本所產生的頁面大小爲256KB,那麼會分配4個64KB的緩衝區來緩存,若是頁面大小大於256KB,那麼大於256KB的部分會緩存到fastcgi_temp_path指定的路徑中,可是這並非好方法,由於內存中的數據處理速度要快於磁盤。通常這個值應該爲站點中php腳本所產生的頁面大小的中間值,若是站點大部分腳本所產生的頁面大小爲256KB,那麼能夠把這個值設置爲「8 32K」「4 64k」等。 fastcgi_busy_buffers_size 128k; #建議設置爲fastcgi_buffers的兩倍,繁忙時候的buffer fastcgi_temp_file write_size 128k; #在寫入fastcgi_temp_path時將用多大的數據塊,默認值是fastcgi_buffers的兩倍,該數值設置小時若負載上來時可能報502BadGateway fastcgi_temp_path /usr/local/nginx/nginx_tmp; #緩存臨時目錄 fastcgi_intercept_errors on; #這個指令指定是否傳遞4xx和5xx錯誤信息到客戶端,或者容許nginx使用error_page處理錯誤信息。 注:靜態文件不存在會返回404頁面,可是php頁面則返回空白頁!! fastcgi cache_path/usr/local/nginx1.10/fastcgi cachelevels=1:2 keys_zone=cache_fastcgi:128 minactive=1d max_size=10g; #fastcgi_cache緩存日錄,能夠設置目錄層級,好比1:2會生成16*256個子目錄,cache_fastcgi是這個緩存空間的名字,c ache是用多少內存(這樣熱門的內容nginx直接放內存,提升訪問速度),inactive表示默認失效時間,若是緩存數據在失效時間內沒有被訪問,將被刪除,max_size表示最多用多少硬盤空間。 fastcgi_cache cache_fastcgi; #表示開啓FastCGI緩存併爲其指定一個名稱。開啓緩存很是有用,能夠有效下降CPU的負載,而且防止502的錯誤放生。cache_fastcgi爲proxy_cache_path指令建立的緩存區名稱 fastcgi_cache_valid 200 302 1h; #用來指定應答代碼的緩存時間,實例中的值表示將200和302應答緩存一小時,要和fastcgi_cache配合使用 fastcgi_cache_valid 301 1d; #將301應答緩存一天 fastcgi_cache_valid any 1m; #將其餘應答緩存爲1分鐘 fastcgi_cache_min_uses 1; #該指令用於設置通過多少次請求的相同URL將被緩存。 fastcgi_cache key http://$host$request_uri; #該指令用來設置web緩存的Key值,nginx根據key值md5哈希存儲.通常根據host(域名)、$request_uri(請求的路徑)等變量組合成proxy_cache_key。 fastcgi_pass; #指定FastCGI服務器監聽端口與地址,能夠是本機或者其它
使用gzip壓縮功能,可能爲咱們節約帶寬,加快傳輸速度,有更好的體驗,也爲咱們節約成本,因此說這是一個重點。
Nginx啓用壓縮功能須要你來ngx_http_gzip_module模塊,apache使用的是mod_deflate,通常咱們須要壓縮的內容有:文本,js,html,css,對於圖片,視頻,flash什麼的不壓縮,同時也要注意,咱們使用gzip的功能是須要消耗CPU的java
gzip_vary.on; gzip_proxied any; gzip on;#開啓壓縮功能 gzip_min_length 2k; #設置容許壓縮的頁面最小字節數,頁面字節數從header頭的Content- Length中獲取,默認值是0,無論頁面多大都進行壓縮,建議設置成大於1K,若是小於1K可能會越壓越大。 gzip_buffers 432k;#壓縮緩衝區大小,表示中請4個單位爲32K的內存做爲壓縮結果流緩存,默認值是申請與原始數據大小相同的內存空間來存儲gzip壓縮結果。 gzip_http_version 1.1;#壓縮版本,用於設置識別HTTP協議版本,默認是1.1,目前大部分瀏覽器已經支持GZIP解壓,使用默認便可gzip_comp_level 6;#壓縮比例,用來指定GZIP壓縮比,1壓縮比最小,處理速度最快,9壓縮比最大,傳輸速度快,可是處理慢,也比較消耗CPU資源。 gzip types text/css text/xml application/javascript; #用來指定壓縮的類型,'text/htm1'類型老是會被壓縮。 默認值:gzip_types text/html(默認不對js/css文件進行壓縮) #壓縮類型,匹配MIME圖型進行壓縮 #不能用通配符text/* #(不管是否指定)text/html默認已經壓縮 #設置哪壓縮種文本文件可參考conf/mime.types gzip_vary on; #varyheader支持,該選項可讓前端的緩存服務器緩存通過GZIP壓縮的頁面,例如用Squid緩存通過nginx壓縮的數據
緩存,主要針對於圖片,css,js等元素更改機會比較少的狀況下使用,特別是圖片,佔用帶寬大,咱們徹底能夠設置圖片在瀏覽器本地緩存365d,css,js,html能夠緩存個10來天,這樣用戶第一次打開加載慢一點,第二次,就很是快了!緩存的時候,咱們須要將須要緩存的拓展名列出來,Expires緩存配置在server字段裏面 node
location ~* \.(ico|jpg|gif|png|bmp|swf|flv)$ { expires 30d; # log_not_found off; access_log off; } location ~* \.(js|css)$ { expires 7d; log_not_found off; access_log off; }
注:1og_not_found off;是否在error_log中記錄不存在的錯誤。默認是。nginx
被緩存的頁面或數據更新了,用戶看到的可能仍是舊的內容,反而影響用戶體驗。解決辦法:第一個縮短緩存時間,例如:1天,但不完全,除非更新頻率大於1天;第二個對緩存的對象更名。web
1)網站流量統計工具
2)更新頻繁的文件(google的logo)apache
net.ipv4.tcp_max_tw_buckets=6000#這個參數表示操做系統容許TIME_WAIT套接字數量的最大值,若是超過這個數字,TIME_WAIT套接將馬上被清除並打印警告信息。該參數默認爲180000,過多的TIME_WAIT套接字會使Web服務器變慢。
注:主動關閉鏈接的服務端會產生TIME_WAIT狀態的鏈接
歡×××陳師傅」