首页 > 代码库 > 实战Nginx_取代Apache的高性能Web服务器

实战Nginx_取代Apache的高性能Web服务器

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