標籤:nginx
nginx的設定檔詳解
worker_processes 24;
#指定工作繁衍的處理序數,(一般等於CPU的總核心數或者總核心數的兩倍,例如兩個4核CPU,總核心數為8)
#指定錯誤記錄檔的存放路徑和錯誤記錄檔層級:[debug|info|notice|warn|error|crit]
worker_rlimit_nofile 51200#指定檔案描述符數量
event{ use epoll}#linux 下預設的I/O網路模型,預設採用的是epoll模型。
worker_connections 65535;#允許的串連數
client_max_body_size 8m#設定用戶端能夠上傳的檔案的大小
#開啟gzip壓縮功能
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;
#寫個判斷機制
if ($request_uri ~* ^.*\.svn.*$) {
return 404;
}
if ($request_filename !~ (/index.php/jsapi|/fonts|/javascript) ) {
rewrite ^/(.*)$ /index.php/user/$1 last;
break;
}
#網域名稱重新導向連結
server {
listen 80;
server_name ftchinese.com;
rewrite ^/(.*) http://www.ftchinese.com/$1 permanent;
}
#對於每一條日誌記錄,記錄檔都將先開啟檔案,再寫入日誌記錄,然後馬上關閉,為了提高包含變數的記錄檔存放路徑的效能,需用open_log_file_cache指令設定經常被使用的記錄檔描述符緩衝。
open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time] | off 該指令預設是禁止的
open_log_file_cache off
lnmp環境的配置和最佳化:
提高PHP(FastCGI),什麼是FastCGI呢?
FastCGI是語言無關的、可伸縮架構的CGI開放擴充,其主要行為是將CGI解譯器進程保持在記憶體中並因此擷取較高的效能。總所周知,CGI解譯器的反覆載入是CGI
效能低下的主要原因,如果CGI解譯器保持在記憶體中並接受FastCGI進程管理調度,則可以提供良好的效能、伸縮性、Fail-Over特性等。
FastCGI的工作原理是:
(1)、FastCGI進程管理自身初始化,啟動多個CGI解譯器進程(多個php-cgi進程)並等待來自Web Server的連結。在本文中,採用PHP-FPM進程管理器啟動多個php-cgi FastCGI進程。啟動php-cgi FastCGI進程時,可以配置以TCP和UNIX通訊端兩種方式啟動。
(2)、當用戶端請求到達Web伺服器時,web伺服器將請求採用TCP協議或者UNIX通訊端方式轉寄到FastCGI主進程,FastCGI主進程選擇並串連到一個CGI解譯器(子進程)。web伺服器將CGI環境變數和標準輸入發送到FastCGI子進程php-cgi。
(3)、FastCGI進程完成處理後將標準輸出和錯誤資訊從同一串連返回web伺服器。當FastCGI子進程關閉串連時,請求便告知處理完成。FastCGI子進程接著等待並處理來自FastCGI進程管理器的下一個串連。而在一般的普通CGI模式中,php-cgi在此時已經退出了。
所以可以想象普通的CGI模式到底有多慢。每一個web請求PHP都必須重新解析php.ini、重新載入全部擴充並重新初始化全部資料結構。使用FastCGI,所有這些都只在進程啟動時發生一次。一個額外好處是:持續資料庫連接可以工作。
實戰Nginx_取代Apache的高效能Web伺服器