1. 程式人生 > >實戰Nginx_取代Apache的高性能Web服務器

實戰Nginx_取代Apache的高性能Web服務器

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服務器